KILLED proof of input_rSiv5a1ll5.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), 0 ms] (12) typed CpxTrs (13) OrderProof [LOWER BOUND(ID), 0 ms] (14) typed CpxTrs (15) RewriteLemmaProof [LOWER BOUND(ID), 19.2 s] (16) typed CpxTrs (17) RewriteLemmaProof [LOWER BOUND(ID), 47 ms] (18) typed CpxTrs (19) RewriteLemmaProof [LOWER BOUND(ID), 586 ms] (20) typed CpxTrs (21) RewriteLemmaProof [LOWER BOUND(ID), 27 ms] (22) typed CpxTrs (23) RewriteLemmaProof [LOWER BOUND(ID), 125 ms] (24) typed CpxTrs (25) RewriteLemmaProof [LOWER BOUND(ID), 358 ms] (26) typed CpxTrs (27) RewriteLemmaProof [LOWER BOUND(ID), 128 ms] (28) typed CpxTrs (29) RewriteLemmaProof [LOWER BOUND(ID), 7010 ms] (30) BEST (31) proven lower bound (32) LowerBoundPropagationProof [FINISHED, 0 ms] (33) BOUNDS(n^1, INF) (34) typed CpxTrs (35) RewriteLemmaProof [LOWER BOUND(ID), 3323 ms] (36) typed CpxTrs (37) RewriteLemmaProof [LOWER BOUND(ID), 12.1 s] (38) typed CpxTrs (39) RewriteLemmaProof [LOWER BOUND(ID), 7196 ms] (40) typed CpxTrs (41) RewriteLemmaProof [LOWER BOUND(ID), 3398 ms] (42) typed CpxTrs (43) RelTrsToWeightedTrsProof [UPPER BOUND(ID), 0 ms] (44) CpxWeightedTrs (45) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (46) CpxTypedWeightedTrs (47) CompletionProof [UPPER BOUND(ID), 0 ms] (48) CpxTypedWeightedCompleteTrs (49) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (50) CpxRNTS (51) CompletionProof [UPPER BOUND(ID), 0 ms] (52) CpxTypedWeightedCompleteTrs (53) NarrowingProof [BOTH BOUNDS(ID, ID), 63 ms] (54) CpxTypedWeightedCompleteTrs (55) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (56) CpxRNTS (57) SimplificationProof [BOTH BOUNDS(ID, ID), 0 ms] (58) CpxRNTS (59) CpxTrsToCdtProof [UPPER BOUND(ID), 0 ms] (60) CdtProblem (61) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (62) CdtProblem (63) CdtToCpxRelTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (64) CpxRelTRS (65) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] (66) CpxTRS (67) RelTrsToWeightedTrsProof [BOTH BOUNDS(ID, ID), 0 ms] (68) CpxWeightedTrs (69) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (70) CpxTypedWeightedTrs (71) CompletionProof [UPPER BOUND(ID), 0 ms] (72) CpxTypedWeightedCompleteTrs (73) NarrowingProof [BOTH BOUNDS(ID, ID), 1092 ms] (74) CpxTypedWeightedCompleteTrs (75) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (76) CpxRNTS (77) SimplificationProof [BOTH BOUNDS(ID, ID), 0 ms] (78) CpxRNTS (79) CompletionProof [UPPER BOUND(ID), 0 ms] (80) CpxTypedWeightedCompleteTrs (81) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (82) CpxRNTS (83) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (84) CdtProblem (85) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (86) CdtProblem (87) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (88) CdtProblem (89) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 15 ms] (90) CdtProblem (91) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (92) CdtProblem (93) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 23 ms] (94) CdtProblem (95) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (96) CdtProblem (97) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 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), 25 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), 16 ms] (110) CdtProblem (111) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 10 ms] (112) CdtProblem (113) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (114) CdtProblem (115) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (116) CdtProblem (117) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (118) CdtProblem (119) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (120) CdtProblem (121) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (122) CdtProblem (123) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (124) CdtProblem (125) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (126) CdtProblem (127) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (128) CdtProblem (129) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 28 ms] (130) CdtProblem (131) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (132) CdtProblem (133) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (134) CdtProblem (135) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (136) CdtProblem (137) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (138) CdtProblem (139) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 1 ms] (140) CdtProblem (141) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (142) CdtProblem (143) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (144) CdtProblem (145) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 22 ms] (146) CdtProblem (147) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (148) CdtProblem (149) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (150) CdtProblem (151) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (152) CdtProblem (153) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (154) CdtProblem (155) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (156) CdtProblem (157) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 8 ms] (158) CdtProblem (159) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 30 ms] (160) CdtProblem (161) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (162) CdtProblem (163) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 28 ms] (164) CdtProblem (165) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (166) CdtProblem (167) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 0 ms] (168) CdtProblem (169) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (170) CdtProblem (171) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 68 ms] (172) CdtProblem (173) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (174) CdtProblem (175) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 8 ms] (176) CdtProblem (177) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (178) CdtProblem (179) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 52 ms] (180) CdtProblem (181) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (182) CdtProblem (183) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 122 ms] (184) CdtProblem (185) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (186) CdtProblem (187) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 83 ms] (188) CdtProblem (189) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (190) CdtProblem (191) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 177 ms] (192) CdtProblem (193) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 13 ms] (194) CdtProblem (195) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 61 ms] (196) CdtProblem (197) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 19 ms] (198) CdtProblem (199) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 90 ms] (200) CdtProblem (201) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 12 ms] (202) CdtProblem (203) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 74 ms] (204) CdtProblem (205) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (206) CdtProblem (207) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 140 ms] (208) CdtProblem (209) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 30 ms] (210) CdtProblem (211) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 127 ms] (212) CdtProblem (213) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 19 ms] (214) CdtProblem (215) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 229 ms] (216) CdtProblem (217) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 25 ms] (218) CdtProblem (219) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 126 ms] (220) CdtProblem (221) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 44 ms] (222) CdtProblem (223) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 327 ms] (224) CdtProblem (225) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 49 ms] (226) CdtProblem (227) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 225 ms] (228) CdtProblem (229) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 52 ms] (230) CdtProblem (231) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 200 ms] (232) CdtProblem (233) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 21 ms] (234) CdtProblem (235) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 199 ms] (236) CdtProblem (237) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 31 ms] (238) CdtProblem (239) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 141 ms] (240) CdtProblem (241) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 83 ms] (242) CdtProblem (243) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 124 ms] (244) CdtProblem (245) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 39 ms] (246) CdtProblem (247) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 141 ms] (248) CdtProblem (249) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 37 ms] (250) CdtProblem (251) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 109 ms] (252) CdtProblem (253) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 60 ms] (254) CdtProblem (255) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 138 ms] (256) CdtProblem (257) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 39 ms] (258) CdtProblem (259) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 247 ms] (260) CdtProblem (261) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 102 ms] (262) 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__terms(N) -> cons(recip(a__sqr(mark(N))), terms(s(N))) a__sqr(0) -> 0 a__sqr(s(X)) -> s(a__add(a__sqr(mark(X)), a__dbl(mark(X)))) a__dbl(0) -> 0 a__dbl(s(X)) -> s(s(a__dbl(mark(X)))) a__add(0, X) -> mark(X) a__add(s(X), Y) -> s(a__add(mark(X), mark(Y))) a__first(0, X) -> nil a__first(s(X), cons(Y, Z)) -> cons(mark(Y), first(X, Z)) mark(terms(X)) -> a__terms(mark(X)) mark(sqr(X)) -> a__sqr(mark(X)) mark(add(X1, X2)) -> a__add(mark(X1), mark(X2)) mark(dbl(X)) -> a__dbl(mark(X)) mark(first(X1, X2)) -> a__first(mark(X1), mark(X2)) mark(cons(X1, X2)) -> cons(mark(X1), X2) mark(recip(X)) -> recip(mark(X)) mark(s(X)) -> s(mark(X)) mark(0) -> 0 mark(nil) -> nil a__terms(X) -> terms(X) a__sqr(X) -> sqr(X) a__add(X1, X2) -> add(X1, X2) a__dbl(X) -> dbl(X) a__first(X1, X2) -> first(X1, X2) 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__terms(N) -> cons(recip(a__sqr(mark(N))), terms(s(N))) a__sqr(0') -> 0' a__sqr(s(X)) -> s(a__add(a__sqr(mark(X)), a__dbl(mark(X)))) a__dbl(0') -> 0' a__dbl(s(X)) -> s(s(a__dbl(mark(X)))) a__add(0', X) -> mark(X) a__add(s(X), Y) -> s(a__add(mark(X), mark(Y))) a__first(0', X) -> nil a__first(s(X), cons(Y, Z)) -> cons(mark(Y), first(X, Z)) mark(terms(X)) -> a__terms(mark(X)) mark(sqr(X)) -> a__sqr(mark(X)) mark(add(X1, X2)) -> a__add(mark(X1), mark(X2)) mark(dbl(X)) -> a__dbl(mark(X)) mark(first(X1, X2)) -> a__first(mark(X1), mark(X2)) mark(cons(X1, X2)) -> cons(mark(X1), X2) mark(recip(X)) -> recip(mark(X)) mark(s(X)) -> s(mark(X)) mark(0') -> 0' mark(nil) -> nil a__terms(X) -> terms(X) a__sqr(X) -> sqr(X) a__add(X1, X2) -> add(X1, X2) a__dbl(X) -> dbl(X) a__first(X1, X2) -> first(X1, X2) 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__terms(N) -> cons(recip(a__sqr(mark(N))), terms(s(N))) a__sqr(0) -> 0 a__sqr(s(X)) -> s(a__add(a__sqr(mark(X)), a__dbl(mark(X)))) a__dbl(0) -> 0 a__dbl(s(X)) -> s(s(a__dbl(mark(X)))) a__add(0, X) -> mark(X) a__add(s(X), Y) -> s(a__add(mark(X), mark(Y))) a__first(0, X) -> nil a__first(s(X), cons(Y, Z)) -> cons(mark(Y), first(X, Z)) mark(terms(X)) -> a__terms(mark(X)) mark(sqr(X)) -> a__sqr(mark(X)) mark(add(X1, X2)) -> a__add(mark(X1), mark(X2)) mark(dbl(X)) -> a__dbl(mark(X)) mark(first(X1, X2)) -> a__first(mark(X1), mark(X2)) mark(cons(X1, X2)) -> cons(mark(X1), X2) mark(recip(X)) -> recip(mark(X)) mark(s(X)) -> s(mark(X)) mark(0) -> 0 mark(nil) -> nil a__terms(X) -> terms(X) a__sqr(X) -> sqr(X) a__add(X1, X2) -> add(X1, X2) a__dbl(X) -> dbl(X) a__first(X1, X2) -> first(X1, X2) 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__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__TERMS(z0) -> c(A__SQR(mark(z0)), MARK(z0)) A__TERMS(z0) -> c1 A__SQR(0) -> c2 A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__SQR(z0) -> c5 A__DBL(0) -> c6 A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__DBL(z0) -> c8 A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__ADD(z0, z1) -> c12 A__FIRST(0, z0) -> c13 A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) A__FIRST(z0, z1) -> c15 MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) MARK(0) -> c26 MARK(nil) -> c27 S tuples: A__TERMS(z0) -> c(A__SQR(mark(z0)), MARK(z0)) A__TERMS(z0) -> c1 A__SQR(0) -> c2 A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__SQR(z0) -> c5 A__DBL(0) -> c6 A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__DBL(z0) -> c8 A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__ADD(z0, z1) -> c12 A__FIRST(0, z0) -> c13 A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) A__FIRST(z0, z1) -> c15 MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) MARK(0) -> c26 MARK(nil) -> c27 K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__TERMS_1, A__SQR_1, A__DBL_1, A__ADD_2, A__FIRST_2, MARK_1 Compound Symbols: c_2, c1, c2, c3_3, c4_3, c5, c6, c7_2, c8, c9_1, c10_2, c11_2, c12, c13, c14_1, c15, c16_2, c17_2, c18_2, c19_2, c20_2, c21_2, c22_2, c23_1, c24_1, c25_1, c26, c27 ---------------------------------------- (7) CdtToCpxRelTrsProof (BOTH BOUNDS(ID, ID)) Converted S to standard rules, and D \ S as well as R to relative rules. ---------------------------------------- (8) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, INF). The TRS R consists of the following rules: A__TERMS(z0) -> c(A__SQR(mark(z0)), MARK(z0)) A__TERMS(z0) -> c1 A__SQR(0) -> c2 A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__SQR(z0) -> c5 A__DBL(0) -> c6 A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__DBL(z0) -> c8 A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__ADD(z0, z1) -> c12 A__FIRST(0, z0) -> c13 A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) A__FIRST(z0, z1) -> c15 MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) MARK(0) -> c26 MARK(nil) -> c27 The (relative) TRS S consists of the following rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Rewrite Strategy: INNERMOST ---------------------------------------- (9) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (10) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(n^1, INF). The TRS R consists of the following rules: A__TERMS(z0) -> c(A__SQR(mark(z0)), MARK(z0)) A__TERMS(z0) -> c1 A__SQR(0') -> c2 A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__SQR(z0) -> c5 A__DBL(0') -> c6 A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__DBL(z0) -> c8 A__ADD(0', z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__ADD(z0, z1) -> c12 A__FIRST(0', z0) -> c13 A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) A__FIRST(z0, z1) -> c15 MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) MARK(0') -> c26 MARK(nil) -> c27 The (relative) TRS S consists of the following rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0') -> 0' a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0') -> 0' a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0', z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0', z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0') -> 0' mark(nil) -> nil Rewrite Strategy: INNERMOST ---------------------------------------- (11) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Inferred types. ---------------------------------------- (12) Obligation: Innermost TRS: Rules: A__TERMS(z0) -> c(A__SQR(mark(z0)), MARK(z0)) A__TERMS(z0) -> c1 A__SQR(0') -> c2 A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__SQR(z0) -> c5 A__DBL(0') -> c6 A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__DBL(z0) -> c8 A__ADD(0', z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__ADD(z0, z1) -> c12 A__FIRST(0', z0) -> c13 A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) A__FIRST(z0, z1) -> c15 MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) MARK(0') -> c26 MARK(nil) -> c27 a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0') -> 0' a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0') -> 0' a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0', z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0', z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0') -> 0' mark(nil) -> nil Types: A__TERMS :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c:c1 c :: c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c:c1 A__SQR :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c2:c3:c4:c5 mark :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil MARK :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c1 :: c:c1 0' :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil c2 :: c2:c3:c4:c5 s :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c3 :: c9:c10:c11:c12 -> c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c2:c3:c4:c5 A__ADD :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c9:c10:c11:c12 a__sqr :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__dbl :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c4 :: c9:c10:c11:c12 -> c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c2:c3:c4:c5 A__DBL :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c6:c7:c8 c5 :: c2:c3:c4:c5 c6 :: c6:c7:c8 c7 :: c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c6:c7:c8 c8 :: c6:c7:c8 c9 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c10 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c11 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c12 :: c9:c10:c11:c12 A__FIRST :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c13:c14:c15 c13 :: c13:c14:c15 cons :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c14 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c13:c14:c15 c15 :: c13:c14:c15 terms :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c16 :: c:c1 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 sqr :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c17 :: c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 add :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c18 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c19 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 dbl :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c20 :: c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 first :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c21 :: c13:c14:c15 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c22 :: c13:c14:c15 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c23 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 recip :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c24 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c25 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c26 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 nil :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil c27 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 a__terms :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__add :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__first :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil hole_c:c11_28 :: c:c1 hole_0':s:cons:terms:sqr:add:dbl:first:recip:nil2_28 :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil hole_c2:c3:c4:c53_28 :: c2:c3:c4:c5 hole_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c274_28 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 hole_c9:c10:c11:c125_28 :: c9:c10:c11:c12 hole_c6:c7:c86_28 :: c6:c7:c8 hole_c13:c14:c157_28 :: c13:c14:c15 gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28 :: Nat -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil gen_c2:c3:c4:c59_28 :: Nat -> c2:c3:c4:c5 gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28 :: Nat -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 gen_c9:c10:c11:c1211_28 :: Nat -> c9:c10:c11:c12 gen_c6:c7:c812_28 :: Nat -> c6:c7:c8 ---------------------------------------- (13) OrderProof (LOWER BOUND(ID)) Heuristically decided to analyse the following defined symbols: A__TERMS, A__SQR, mark, MARK, A__ADD, a__sqr, a__dbl, A__DBL, a__terms, a__add They will be analysed ascendingly in the following order: A__TERMS = A__SQR mark < A__TERMS A__TERMS = MARK A__TERMS = A__ADD A__TERMS = A__DBL mark < A__SQR A__SQR = MARK A__SQR = A__ADD a__sqr < A__SQR a__dbl < A__SQR A__SQR = A__DBL mark < MARK mark < A__ADD mark = a__sqr mark = a__dbl mark < A__DBL mark = a__terms mark = a__add MARK = A__ADD MARK = A__DBL A__ADD = A__DBL a__sqr = a__dbl a__sqr = a__terms a__sqr = a__add a__dbl = a__terms a__dbl = a__add a__terms = a__add ---------------------------------------- (14) Obligation: Innermost TRS: Rules: A__TERMS(z0) -> c(A__SQR(mark(z0)), MARK(z0)) A__TERMS(z0) -> c1 A__SQR(0') -> c2 A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__SQR(z0) -> c5 A__DBL(0') -> c6 A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__DBL(z0) -> c8 A__ADD(0', z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__ADD(z0, z1) -> c12 A__FIRST(0', z0) -> c13 A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) A__FIRST(z0, z1) -> c15 MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) MARK(0') -> c26 MARK(nil) -> c27 a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0') -> 0' a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0') -> 0' a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0', z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0', z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0') -> 0' mark(nil) -> nil Types: A__TERMS :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c:c1 c :: c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c:c1 A__SQR :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c2:c3:c4:c5 mark :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil MARK :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c1 :: c:c1 0' :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil c2 :: c2:c3:c4:c5 s :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c3 :: c9:c10:c11:c12 -> c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c2:c3:c4:c5 A__ADD :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c9:c10:c11:c12 a__sqr :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__dbl :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c4 :: c9:c10:c11:c12 -> c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c2:c3:c4:c5 A__DBL :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c6:c7:c8 c5 :: c2:c3:c4:c5 c6 :: c6:c7:c8 c7 :: c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c6:c7:c8 c8 :: c6:c7:c8 c9 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c10 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c11 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c12 :: c9:c10:c11:c12 A__FIRST :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c13:c14:c15 c13 :: c13:c14:c15 cons :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c14 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c13:c14:c15 c15 :: c13:c14:c15 terms :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c16 :: c:c1 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 sqr :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c17 :: c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 add :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c18 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c19 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 dbl :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c20 :: c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 first :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c21 :: c13:c14:c15 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c22 :: c13:c14:c15 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c23 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 recip :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c24 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c25 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c26 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 nil :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil c27 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 a__terms :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__add :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__first :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil hole_c:c11_28 :: c:c1 hole_0':s:cons:terms:sqr:add:dbl:first:recip:nil2_28 :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil hole_c2:c3:c4:c53_28 :: c2:c3:c4:c5 hole_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c274_28 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 hole_c9:c10:c11:c125_28 :: c9:c10:c11:c12 hole_c6:c7:c86_28 :: c6:c7:c8 hole_c13:c14:c157_28 :: c13:c14:c15 gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28 :: Nat -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil gen_c2:c3:c4:c59_28 :: Nat -> c2:c3:c4:c5 gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28 :: Nat -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 gen_c9:c10:c11:c1211_28 :: Nat -> c9:c10:c11:c12 gen_c6:c7:c812_28 :: Nat -> c6:c7:c8 Generator Equations: gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(0) <=> 0' gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(x, 1)) <=> s(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(x)) gen_c2:c3:c4:c59_28(0) <=> c2 gen_c2:c3:c4:c59_28(+(x, 1)) <=> c3(c9(c26), gen_c2:c3:c4:c59_28(x), c26) gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(0) <=> c26 gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(+(x, 1)) <=> c16(c(c2, c26), gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(x)) gen_c9:c10:c11:c1211_28(0) <=> c9(c26) gen_c9:c10:c11:c1211_28(+(x, 1)) <=> c10(gen_c9:c10:c11:c1211_28(x), c26) gen_c6:c7:c812_28(0) <=> c6 gen_c6:c7:c812_28(+(x, 1)) <=> c7(gen_c6:c7:c812_28(x), c26) The following defined symbols remain to be analysed: a__terms, A__TERMS, A__SQR, mark, MARK, A__ADD, a__sqr, a__dbl, A__DBL, a__add They will be analysed ascendingly in the following order: A__TERMS = A__SQR mark < A__TERMS A__TERMS = MARK A__TERMS = A__ADD A__TERMS = A__DBL mark < A__SQR A__SQR = MARK A__SQR = A__ADD a__sqr < A__SQR a__dbl < A__SQR A__SQR = A__DBL mark < MARK mark < A__ADD mark = a__sqr mark = a__dbl mark < A__DBL mark = a__terms mark = a__add MARK = A__ADD MARK = A__DBL A__ADD = A__DBL a__sqr = a__dbl a__sqr = a__terms a__sqr = a__add a__dbl = a__terms a__dbl = a__add a__terms = a__add ---------------------------------------- (15) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1321607_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1321607_28), rt in Omega(0) Induction Base: mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(0)) ->_R^Omega(0) 0' Induction Step: mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(n1321607_28, 1))) ->_R^Omega(0) s(mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1321607_28))) ->_IH s(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(c1321608_28)) We have rt in Omega(1) and sz in O(n). Thus, we have irc_R in Omega(n^0). ---------------------------------------- (16) Obligation: Innermost TRS: Rules: A__TERMS(z0) -> c(A__SQR(mark(z0)), MARK(z0)) A__TERMS(z0) -> c1 A__SQR(0') -> c2 A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__SQR(z0) -> c5 A__DBL(0') -> c6 A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__DBL(z0) -> c8 A__ADD(0', z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__ADD(z0, z1) -> c12 A__FIRST(0', z0) -> c13 A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) A__FIRST(z0, z1) -> c15 MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) MARK(0') -> c26 MARK(nil) -> c27 a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0') -> 0' a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0') -> 0' a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0', z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0', z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0') -> 0' mark(nil) -> nil Types: A__TERMS :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c:c1 c :: c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c:c1 A__SQR :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c2:c3:c4:c5 mark :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil MARK :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c1 :: c:c1 0' :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil c2 :: c2:c3:c4:c5 s :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c3 :: c9:c10:c11:c12 -> c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c2:c3:c4:c5 A__ADD :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c9:c10:c11:c12 a__sqr :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__dbl :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c4 :: c9:c10:c11:c12 -> c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c2:c3:c4:c5 A__DBL :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c6:c7:c8 c5 :: c2:c3:c4:c5 c6 :: c6:c7:c8 c7 :: c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c6:c7:c8 c8 :: c6:c7:c8 c9 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c10 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c11 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c12 :: c9:c10:c11:c12 A__FIRST :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c13:c14:c15 c13 :: c13:c14:c15 cons :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c14 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c13:c14:c15 c15 :: c13:c14:c15 terms :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c16 :: c:c1 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 sqr :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c17 :: c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 add :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c18 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c19 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 dbl :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c20 :: c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 first :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c21 :: c13:c14:c15 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c22 :: c13:c14:c15 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c23 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 recip :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c24 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c25 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c26 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 nil :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil c27 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 a__terms :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__add :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__first :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil hole_c:c11_28 :: c:c1 hole_0':s:cons:terms:sqr:add:dbl:first:recip:nil2_28 :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil hole_c2:c3:c4:c53_28 :: c2:c3:c4:c5 hole_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c274_28 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 hole_c9:c10:c11:c125_28 :: c9:c10:c11:c12 hole_c6:c7:c86_28 :: c6:c7:c8 hole_c13:c14:c157_28 :: c13:c14:c15 gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28 :: Nat -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil gen_c2:c3:c4:c59_28 :: Nat -> c2:c3:c4:c5 gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28 :: Nat -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 gen_c9:c10:c11:c1211_28 :: Nat -> c9:c10:c11:c12 gen_c6:c7:c812_28 :: Nat -> c6:c7:c8 Lemmas: mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1321607_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1321607_28), rt in Omega(0) Generator Equations: gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(0) <=> 0' gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(x, 1)) <=> s(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(x)) gen_c2:c3:c4:c59_28(0) <=> c2 gen_c2:c3:c4:c59_28(+(x, 1)) <=> c3(c9(c26), gen_c2:c3:c4:c59_28(x), c26) gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(0) <=> c26 gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(+(x, 1)) <=> c16(c(c2, c26), gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(x)) gen_c9:c10:c11:c1211_28(0) <=> c9(c26) gen_c9:c10:c11:c1211_28(+(x, 1)) <=> c10(gen_c9:c10:c11:c1211_28(x), c26) gen_c6:c7:c812_28(0) <=> c6 gen_c6:c7:c812_28(+(x, 1)) <=> c7(gen_c6:c7:c812_28(x), c26) The following defined symbols remain to be analysed: a__dbl, A__TERMS, A__SQR, MARK, A__ADD, a__sqr, A__DBL, a__terms, a__add They will be analysed ascendingly in the following order: A__TERMS = A__SQR mark < A__TERMS A__TERMS = MARK A__TERMS = A__ADD A__TERMS = A__DBL mark < A__SQR A__SQR = MARK A__SQR = A__ADD a__sqr < A__SQR a__dbl < A__SQR A__SQR = A__DBL mark < MARK mark < A__ADD mark = a__sqr mark = a__dbl mark < A__DBL mark = a__terms mark = a__add MARK = A__ADD MARK = A__DBL A__ADD = A__DBL a__sqr = a__dbl a__sqr = a__terms a__sqr = a__add a__dbl = a__terms a__dbl = a__add a__terms = a__add ---------------------------------------- (17) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: a__dbl(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1330231_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(*(2, n1330231_28)), rt in Omega(0) Induction Base: a__dbl(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(0)) ->_R^Omega(0) 0' Induction Step: a__dbl(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(n1330231_28, 1))) ->_R^Omega(0) s(s(a__dbl(mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1330231_28))))) ->_L^Omega(0) s(s(a__dbl(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1330231_28)))) ->_IH s(s(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(*(2, c1330232_28)))) We have rt in Omega(1) and sz in O(n). Thus, we have irc_R in Omega(n^0). ---------------------------------------- (18) Obligation: Innermost TRS: Rules: A__TERMS(z0) -> c(A__SQR(mark(z0)), MARK(z0)) A__TERMS(z0) -> c1 A__SQR(0') -> c2 A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__SQR(z0) -> c5 A__DBL(0') -> c6 A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__DBL(z0) -> c8 A__ADD(0', z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__ADD(z0, z1) -> c12 A__FIRST(0', z0) -> c13 A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) A__FIRST(z0, z1) -> c15 MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) MARK(0') -> c26 MARK(nil) -> c27 a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0') -> 0' a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0') -> 0' a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0', z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0', z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0') -> 0' mark(nil) -> nil Types: A__TERMS :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c:c1 c :: c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c:c1 A__SQR :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c2:c3:c4:c5 mark :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil MARK :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c1 :: c:c1 0' :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil c2 :: c2:c3:c4:c5 s :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c3 :: c9:c10:c11:c12 -> c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c2:c3:c4:c5 A__ADD :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c9:c10:c11:c12 a__sqr :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__dbl :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c4 :: c9:c10:c11:c12 -> c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c2:c3:c4:c5 A__DBL :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c6:c7:c8 c5 :: c2:c3:c4:c5 c6 :: c6:c7:c8 c7 :: c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c6:c7:c8 c8 :: c6:c7:c8 c9 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c10 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c11 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c12 :: c9:c10:c11:c12 A__FIRST :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c13:c14:c15 c13 :: c13:c14:c15 cons :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c14 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c13:c14:c15 c15 :: c13:c14:c15 terms :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c16 :: c:c1 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 sqr :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c17 :: c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 add :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c18 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c19 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 dbl :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c20 :: c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 first :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c21 :: c13:c14:c15 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c22 :: c13:c14:c15 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c23 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 recip :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c24 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c25 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c26 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 nil :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil c27 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 a__terms :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__add :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__first :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil hole_c:c11_28 :: c:c1 hole_0':s:cons:terms:sqr:add:dbl:first:recip:nil2_28 :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil hole_c2:c3:c4:c53_28 :: c2:c3:c4:c5 hole_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c274_28 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 hole_c9:c10:c11:c125_28 :: c9:c10:c11:c12 hole_c6:c7:c86_28 :: c6:c7:c8 hole_c13:c14:c157_28 :: c13:c14:c15 gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28 :: Nat -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil gen_c2:c3:c4:c59_28 :: Nat -> c2:c3:c4:c5 gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28 :: Nat -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 gen_c9:c10:c11:c1211_28 :: Nat -> c9:c10:c11:c12 gen_c6:c7:c812_28 :: Nat -> c6:c7:c8 Lemmas: mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1321607_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1321607_28), rt in Omega(0) a__dbl(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1330231_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(*(2, n1330231_28)), rt in Omega(0) Generator Equations: gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(0) <=> 0' gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(x, 1)) <=> s(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(x)) gen_c2:c3:c4:c59_28(0) <=> c2 gen_c2:c3:c4:c59_28(+(x, 1)) <=> c3(c9(c26), gen_c2:c3:c4:c59_28(x), c26) gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(0) <=> c26 gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(+(x, 1)) <=> c16(c(c2, c26), gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(x)) gen_c9:c10:c11:c1211_28(0) <=> c9(c26) gen_c9:c10:c11:c1211_28(+(x, 1)) <=> c10(gen_c9:c10:c11:c1211_28(x), c26) gen_c6:c7:c812_28(0) <=> c6 gen_c6:c7:c812_28(+(x, 1)) <=> c7(gen_c6:c7:c812_28(x), c26) The following defined symbols remain to be analysed: a__terms, A__TERMS, A__SQR, mark, MARK, A__ADD, a__sqr, A__DBL, a__add They will be analysed ascendingly in the following order: A__TERMS = A__SQR mark < A__TERMS A__TERMS = MARK A__TERMS = A__ADD A__TERMS = A__DBL mark < A__SQR A__SQR = MARK A__SQR = A__ADD a__sqr < A__SQR a__dbl < A__SQR A__SQR = A__DBL mark < MARK mark < A__ADD mark = a__sqr mark = a__dbl mark < A__DBL mark = a__terms mark = a__add MARK = A__ADD MARK = A__DBL A__ADD = A__DBL a__sqr = a__dbl a__sqr = a__terms a__sqr = a__add a__dbl = a__terms a__dbl = a__add a__terms = a__add ---------------------------------------- (19) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: a__sqr(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1333395_28)) -> *13_28, rt in Omega(0) Induction Base: a__sqr(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(0)) Induction Step: a__sqr(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(n1333395_28, 1))) ->_R^Omega(0) s(a__add(a__sqr(mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1333395_28))), a__dbl(mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1333395_28))))) ->_L^Omega(0) s(a__add(a__sqr(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1333395_28)), a__dbl(mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1333395_28))))) ->_IH s(a__add(*13_28, a__dbl(mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1333395_28))))) ->_L^Omega(0) s(a__add(*13_28, a__dbl(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1333395_28)))) ->_L^Omega(0) s(a__add(*13_28, gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(*(2, n1333395_28)))) We have rt in Omega(1) and sz in O(n). Thus, we have irc_R in Omega(n^0). ---------------------------------------- (20) Obligation: Innermost TRS: Rules: A__TERMS(z0) -> c(A__SQR(mark(z0)), MARK(z0)) A__TERMS(z0) -> c1 A__SQR(0') -> c2 A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__SQR(z0) -> c5 A__DBL(0') -> c6 A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__DBL(z0) -> c8 A__ADD(0', z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__ADD(z0, z1) -> c12 A__FIRST(0', z0) -> c13 A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) A__FIRST(z0, z1) -> c15 MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) MARK(0') -> c26 MARK(nil) -> c27 a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0') -> 0' a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0') -> 0' a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0', z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0', z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0') -> 0' mark(nil) -> nil Types: A__TERMS :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c:c1 c :: c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c:c1 A__SQR :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c2:c3:c4:c5 mark :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil MARK :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c1 :: c:c1 0' :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil c2 :: c2:c3:c4:c5 s :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c3 :: c9:c10:c11:c12 -> c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c2:c3:c4:c5 A__ADD :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c9:c10:c11:c12 a__sqr :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__dbl :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c4 :: c9:c10:c11:c12 -> c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c2:c3:c4:c5 A__DBL :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c6:c7:c8 c5 :: c2:c3:c4:c5 c6 :: c6:c7:c8 c7 :: c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c6:c7:c8 c8 :: c6:c7:c8 c9 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c10 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c11 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c12 :: c9:c10:c11:c12 A__FIRST :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c13:c14:c15 c13 :: c13:c14:c15 cons :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c14 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c13:c14:c15 c15 :: c13:c14:c15 terms :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c16 :: c:c1 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 sqr :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c17 :: c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 add :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c18 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c19 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 dbl :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c20 :: c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 first :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c21 :: c13:c14:c15 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c22 :: c13:c14:c15 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c23 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 recip :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c24 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c25 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c26 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 nil :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil c27 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 a__terms :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__add :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__first :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil hole_c:c11_28 :: c:c1 hole_0':s:cons:terms:sqr:add:dbl:first:recip:nil2_28 :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil hole_c2:c3:c4:c53_28 :: c2:c3:c4:c5 hole_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c274_28 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 hole_c9:c10:c11:c125_28 :: c9:c10:c11:c12 hole_c6:c7:c86_28 :: c6:c7:c8 hole_c13:c14:c157_28 :: c13:c14:c15 gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28 :: Nat -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil gen_c2:c3:c4:c59_28 :: Nat -> c2:c3:c4:c5 gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28 :: Nat -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 gen_c9:c10:c11:c1211_28 :: Nat -> c9:c10:c11:c12 gen_c6:c7:c812_28 :: Nat -> c6:c7:c8 Lemmas: mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1321607_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1321607_28), rt in Omega(0) a__dbl(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1330231_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(*(2, n1330231_28)), rt in Omega(0) a__sqr(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1333395_28)) -> *13_28, rt in Omega(0) Generator Equations: gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(0) <=> 0' gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(x, 1)) <=> s(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(x)) gen_c2:c3:c4:c59_28(0) <=> c2 gen_c2:c3:c4:c59_28(+(x, 1)) <=> c3(c9(c26), gen_c2:c3:c4:c59_28(x), c26) gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(0) <=> c26 gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(+(x, 1)) <=> c16(c(c2, c26), gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(x)) gen_c9:c10:c11:c1211_28(0) <=> c9(c26) gen_c9:c10:c11:c1211_28(+(x, 1)) <=> c10(gen_c9:c10:c11:c1211_28(x), c26) gen_c6:c7:c812_28(0) <=> c6 gen_c6:c7:c812_28(+(x, 1)) <=> c7(gen_c6:c7:c812_28(x), c26) The following defined symbols remain to be analysed: a__add, A__TERMS, A__SQR, mark, MARK, A__ADD, a__dbl, A__DBL, a__terms They will be analysed ascendingly in the following order: A__TERMS = A__SQR mark < A__TERMS A__TERMS = MARK A__TERMS = A__ADD A__TERMS = A__DBL mark < A__SQR A__SQR = MARK A__SQR = A__ADD a__sqr < A__SQR a__dbl < A__SQR A__SQR = A__DBL mark < MARK mark < A__ADD mark = a__sqr mark = a__dbl mark < A__DBL mark = a__terms mark = a__add MARK = A__ADD MARK = A__DBL A__ADD = A__DBL a__sqr = a__dbl a__sqr = a__terms a__sqr = a__add a__dbl = a__terms a__dbl = a__add a__terms = a__add ---------------------------------------- (21) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: a__add(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1337565_28), gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(n1337565_28, b)), rt in Omega(0) Induction Base: a__add(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(0), gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b)) ->_R^Omega(0) mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b)) ->_L^Omega(0) gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b) Induction Step: a__add(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(n1337565_28, 1)), gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b)) ->_R^Omega(0) s(a__add(mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1337565_28)), mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b)))) ->_L^Omega(0) s(a__add(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1337565_28), mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b)))) ->_L^Omega(0) s(a__add(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1337565_28), gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b))) ->_IH s(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(b, c1337566_28))) We have rt in Omega(1) and sz in O(n). Thus, we have irc_R in Omega(n^0). ---------------------------------------- (22) Obligation: Innermost TRS: Rules: A__TERMS(z0) -> c(A__SQR(mark(z0)), MARK(z0)) A__TERMS(z0) -> c1 A__SQR(0') -> c2 A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__SQR(z0) -> c5 A__DBL(0') -> c6 A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__DBL(z0) -> c8 A__ADD(0', z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__ADD(z0, z1) -> c12 A__FIRST(0', z0) -> c13 A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) A__FIRST(z0, z1) -> c15 MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) MARK(0') -> c26 MARK(nil) -> c27 a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0') -> 0' a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0') -> 0' a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0', z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0', z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0') -> 0' mark(nil) -> nil Types: A__TERMS :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c:c1 c :: c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c:c1 A__SQR :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c2:c3:c4:c5 mark :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil MARK :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c1 :: c:c1 0' :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil c2 :: c2:c3:c4:c5 s :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c3 :: c9:c10:c11:c12 -> c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c2:c3:c4:c5 A__ADD :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c9:c10:c11:c12 a__sqr :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__dbl :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c4 :: c9:c10:c11:c12 -> c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c2:c3:c4:c5 A__DBL :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c6:c7:c8 c5 :: c2:c3:c4:c5 c6 :: c6:c7:c8 c7 :: c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c6:c7:c8 c8 :: c6:c7:c8 c9 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c10 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c11 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c12 :: c9:c10:c11:c12 A__FIRST :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c13:c14:c15 c13 :: c13:c14:c15 cons :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c14 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c13:c14:c15 c15 :: c13:c14:c15 terms :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c16 :: c:c1 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 sqr :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c17 :: c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 add :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c18 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c19 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 dbl :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c20 :: c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 first :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c21 :: c13:c14:c15 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c22 :: c13:c14:c15 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c23 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 recip :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c24 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c25 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c26 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 nil :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil c27 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 a__terms :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__add :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__first :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil hole_c:c11_28 :: c:c1 hole_0':s:cons:terms:sqr:add:dbl:first:recip:nil2_28 :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil hole_c2:c3:c4:c53_28 :: c2:c3:c4:c5 hole_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c274_28 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 hole_c9:c10:c11:c125_28 :: c9:c10:c11:c12 hole_c6:c7:c86_28 :: c6:c7:c8 hole_c13:c14:c157_28 :: c13:c14:c15 gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28 :: Nat -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil gen_c2:c3:c4:c59_28 :: Nat -> c2:c3:c4:c5 gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28 :: Nat -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 gen_c9:c10:c11:c1211_28 :: Nat -> c9:c10:c11:c12 gen_c6:c7:c812_28 :: Nat -> c6:c7:c8 Lemmas: mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1321607_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1321607_28), rt in Omega(0) a__dbl(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1330231_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(*(2, n1330231_28)), rt in Omega(0) a__sqr(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1333395_28)) -> *13_28, rt in Omega(0) a__add(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1337565_28), gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(n1337565_28, b)), rt in Omega(0) Generator Equations: gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(0) <=> 0' gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(x, 1)) <=> s(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(x)) gen_c2:c3:c4:c59_28(0) <=> c2 gen_c2:c3:c4:c59_28(+(x, 1)) <=> c3(c9(c26), gen_c2:c3:c4:c59_28(x), c26) gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(0) <=> c26 gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(+(x, 1)) <=> c16(c(c2, c26), gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(x)) gen_c9:c10:c11:c1211_28(0) <=> c9(c26) gen_c9:c10:c11:c1211_28(+(x, 1)) <=> c10(gen_c9:c10:c11:c1211_28(x), c26) gen_c6:c7:c812_28(0) <=> c6 gen_c6:c7:c812_28(+(x, 1)) <=> c7(gen_c6:c7:c812_28(x), c26) The following defined symbols remain to be analysed: mark, A__TERMS, A__SQR, MARK, A__ADD, a__sqr, a__dbl, A__DBL, a__terms They will be analysed ascendingly in the following order: A__TERMS = A__SQR mark < A__TERMS A__TERMS = MARK A__TERMS = A__ADD A__TERMS = A__DBL mark < A__SQR A__SQR = MARK A__SQR = A__ADD a__sqr < A__SQR a__dbl < A__SQR A__SQR = A__DBL mark < MARK mark < A__ADD mark = a__sqr mark = a__dbl mark < A__DBL mark = a__terms mark = a__add MARK = A__ADD MARK = A__DBL A__ADD = A__DBL a__sqr = a__dbl a__sqr = a__terms a__sqr = a__add a__dbl = a__terms a__dbl = a__add a__terms = a__add ---------------------------------------- (23) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1341099_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1341099_28), rt in Omega(0) Induction Base: mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(0)) ->_R^Omega(0) 0' Induction Step: mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(n1341099_28, 1))) ->_R^Omega(0) s(mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1341099_28))) ->_IH s(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(c1341100_28)) We have rt in Omega(1) and sz in O(n). Thus, we have irc_R in Omega(n^0). ---------------------------------------- (24) Obligation: Innermost TRS: Rules: A__TERMS(z0) -> c(A__SQR(mark(z0)), MARK(z0)) A__TERMS(z0) -> c1 A__SQR(0') -> c2 A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__SQR(z0) -> c5 A__DBL(0') -> c6 A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__DBL(z0) -> c8 A__ADD(0', z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__ADD(z0, z1) -> c12 A__FIRST(0', z0) -> c13 A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) A__FIRST(z0, z1) -> c15 MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) MARK(0') -> c26 MARK(nil) -> c27 a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0') -> 0' a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0') -> 0' a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0', z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0', z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0') -> 0' mark(nil) -> nil Types: A__TERMS :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c:c1 c :: c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c:c1 A__SQR :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c2:c3:c4:c5 mark :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil MARK :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c1 :: c:c1 0' :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil c2 :: c2:c3:c4:c5 s :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c3 :: c9:c10:c11:c12 -> c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c2:c3:c4:c5 A__ADD :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c9:c10:c11:c12 a__sqr :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__dbl :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c4 :: c9:c10:c11:c12 -> c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c2:c3:c4:c5 A__DBL :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c6:c7:c8 c5 :: c2:c3:c4:c5 c6 :: c6:c7:c8 c7 :: c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c6:c7:c8 c8 :: c6:c7:c8 c9 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c10 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c11 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c12 :: c9:c10:c11:c12 A__FIRST :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c13:c14:c15 c13 :: c13:c14:c15 cons :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c14 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c13:c14:c15 c15 :: c13:c14:c15 terms :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c16 :: c:c1 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 sqr :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c17 :: c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 add :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c18 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c19 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 dbl :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c20 :: c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 first :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c21 :: c13:c14:c15 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c22 :: c13:c14:c15 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c23 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 recip :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c24 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c25 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c26 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 nil :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil c27 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 a__terms :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__add :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__first :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil hole_c:c11_28 :: c:c1 hole_0':s:cons:terms:sqr:add:dbl:first:recip:nil2_28 :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil hole_c2:c3:c4:c53_28 :: c2:c3:c4:c5 hole_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c274_28 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 hole_c9:c10:c11:c125_28 :: c9:c10:c11:c12 hole_c6:c7:c86_28 :: c6:c7:c8 hole_c13:c14:c157_28 :: c13:c14:c15 gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28 :: Nat -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil gen_c2:c3:c4:c59_28 :: Nat -> c2:c3:c4:c5 gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28 :: Nat -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 gen_c9:c10:c11:c1211_28 :: Nat -> c9:c10:c11:c12 gen_c6:c7:c812_28 :: Nat -> c6:c7:c8 Lemmas: mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1341099_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1341099_28), rt in Omega(0) a__dbl(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1330231_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(*(2, n1330231_28)), rt in Omega(0) a__sqr(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1333395_28)) -> *13_28, rt in Omega(0) a__add(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1337565_28), gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(n1337565_28, b)), rt in Omega(0) Generator Equations: gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(0) <=> 0' gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(x, 1)) <=> s(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(x)) gen_c2:c3:c4:c59_28(0) <=> c2 gen_c2:c3:c4:c59_28(+(x, 1)) <=> c3(c9(c26), gen_c2:c3:c4:c59_28(x), c26) gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(0) <=> c26 gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(+(x, 1)) <=> c16(c(c2, c26), gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(x)) gen_c9:c10:c11:c1211_28(0) <=> c9(c26) gen_c9:c10:c11:c1211_28(+(x, 1)) <=> c10(gen_c9:c10:c11:c1211_28(x), c26) gen_c6:c7:c812_28(0) <=> c6 gen_c6:c7:c812_28(+(x, 1)) <=> c7(gen_c6:c7:c812_28(x), c26) The following defined symbols remain to be analysed: a__terms, A__TERMS, A__SQR, MARK, A__ADD, a__sqr, a__dbl, A__DBL They will be analysed ascendingly in the following order: A__TERMS = A__SQR mark < A__TERMS A__TERMS = MARK A__TERMS = A__ADD A__TERMS = A__DBL mark < A__SQR A__SQR = MARK A__SQR = A__ADD a__sqr < A__SQR a__dbl < A__SQR A__SQR = A__DBL mark < MARK mark < A__ADD mark = a__sqr mark = a__dbl mark < A__DBL mark = a__terms mark = a__add MARK = A__ADD MARK = A__DBL A__ADD = A__DBL a__sqr = a__dbl a__sqr = a__terms a__sqr = a__add a__dbl = a__terms a__dbl = a__add a__terms = a__add ---------------------------------------- (25) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: a__dbl(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1353169_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(*(2, n1353169_28)), rt in Omega(0) Induction Base: a__dbl(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(0)) ->_R^Omega(0) 0' Induction Step: a__dbl(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(n1353169_28, 1))) ->_R^Omega(0) s(s(a__dbl(mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1353169_28))))) ->_L^Omega(0) s(s(a__dbl(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1353169_28)))) ->_IH s(s(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(*(2, c1353170_28)))) We have rt in Omega(1) and sz in O(n). Thus, we have irc_R in Omega(n^0). ---------------------------------------- (26) Obligation: Innermost TRS: Rules: A__TERMS(z0) -> c(A__SQR(mark(z0)), MARK(z0)) A__TERMS(z0) -> c1 A__SQR(0') -> c2 A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__SQR(z0) -> c5 A__DBL(0') -> c6 A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__DBL(z0) -> c8 A__ADD(0', z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__ADD(z0, z1) -> c12 A__FIRST(0', z0) -> c13 A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) A__FIRST(z0, z1) -> c15 MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) MARK(0') -> c26 MARK(nil) -> c27 a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0') -> 0' a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0') -> 0' a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0', z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0', z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0') -> 0' mark(nil) -> nil Types: A__TERMS :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c:c1 c :: c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c:c1 A__SQR :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c2:c3:c4:c5 mark :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil MARK :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c1 :: c:c1 0' :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil c2 :: c2:c3:c4:c5 s :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c3 :: c9:c10:c11:c12 -> c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c2:c3:c4:c5 A__ADD :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c9:c10:c11:c12 a__sqr :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__dbl :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c4 :: c9:c10:c11:c12 -> c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c2:c3:c4:c5 A__DBL :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c6:c7:c8 c5 :: c2:c3:c4:c5 c6 :: c6:c7:c8 c7 :: c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c6:c7:c8 c8 :: c6:c7:c8 c9 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c10 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c11 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c12 :: c9:c10:c11:c12 A__FIRST :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c13:c14:c15 c13 :: c13:c14:c15 cons :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c14 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c13:c14:c15 c15 :: c13:c14:c15 terms :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c16 :: c:c1 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 sqr :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c17 :: c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 add :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c18 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c19 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 dbl :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c20 :: c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 first :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c21 :: c13:c14:c15 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c22 :: c13:c14:c15 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c23 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 recip :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c24 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c25 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c26 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 nil :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil c27 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 a__terms :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__add :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__first :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil hole_c:c11_28 :: c:c1 hole_0':s:cons:terms:sqr:add:dbl:first:recip:nil2_28 :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil hole_c2:c3:c4:c53_28 :: c2:c3:c4:c5 hole_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c274_28 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 hole_c9:c10:c11:c125_28 :: c9:c10:c11:c12 hole_c6:c7:c86_28 :: c6:c7:c8 hole_c13:c14:c157_28 :: c13:c14:c15 gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28 :: Nat -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil gen_c2:c3:c4:c59_28 :: Nat -> c2:c3:c4:c5 gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28 :: Nat -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 gen_c9:c10:c11:c1211_28 :: Nat -> c9:c10:c11:c12 gen_c6:c7:c812_28 :: Nat -> c6:c7:c8 Lemmas: mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1341099_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1341099_28), rt in Omega(0) a__dbl(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1353169_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(*(2, n1353169_28)), rt in Omega(0) a__sqr(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1333395_28)) -> *13_28, rt in Omega(0) a__add(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1337565_28), gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(n1337565_28, b)), rt in Omega(0) Generator Equations: gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(0) <=> 0' gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(x, 1)) <=> s(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(x)) gen_c2:c3:c4:c59_28(0) <=> c2 gen_c2:c3:c4:c59_28(+(x, 1)) <=> c3(c9(c26), gen_c2:c3:c4:c59_28(x), c26) gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(0) <=> c26 gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(+(x, 1)) <=> c16(c(c2, c26), gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(x)) gen_c9:c10:c11:c1211_28(0) <=> c9(c26) gen_c9:c10:c11:c1211_28(+(x, 1)) <=> c10(gen_c9:c10:c11:c1211_28(x), c26) gen_c6:c7:c812_28(0) <=> c6 gen_c6:c7:c812_28(+(x, 1)) <=> c7(gen_c6:c7:c812_28(x), c26) The following defined symbols remain to be analysed: a__sqr, A__TERMS, A__SQR, MARK, A__ADD, A__DBL They will be analysed ascendingly in the following order: A__TERMS = A__SQR mark < A__TERMS A__TERMS = MARK A__TERMS = A__ADD A__TERMS = A__DBL mark < A__SQR A__SQR = MARK A__SQR = A__ADD a__sqr < A__SQR a__dbl < A__SQR A__SQR = A__DBL mark < MARK mark < A__ADD mark = a__sqr mark = a__dbl mark < A__DBL mark = a__terms mark = a__add MARK = A__ADD MARK = A__DBL A__ADD = A__DBL a__sqr = a__dbl a__sqr = a__terms a__sqr = a__add a__dbl = a__terms a__dbl = a__add a__terms = a__add ---------------------------------------- (27) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: a__sqr(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1354002_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(*(n1354002_28, n1354002_28)), rt in Omega(0) Induction Base: a__sqr(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(0)) ->_R^Omega(0) 0' Induction Step: a__sqr(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(n1354002_28, 1))) ->_R^Omega(0) s(a__add(a__sqr(mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1354002_28))), a__dbl(mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1354002_28))))) ->_L^Omega(0) s(a__add(a__sqr(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1354002_28)), a__dbl(mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1354002_28))))) ->_IH s(a__add(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(*(c1354003_28, c1354003_28)), a__dbl(mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1354002_28))))) ->_L^Omega(0) s(a__add(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(*(n1354002_28, n1354002_28)), a__dbl(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1354002_28)))) ->_L^Omega(0) s(a__add(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(*(n1354002_28, n1354002_28)), gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(*(2, n1354002_28)))) ->_L^Omega(0) s(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(*(n1354002_28, n1354002_28), *(2, n1354002_28)))) We have rt in Omega(1) and sz in O(n). Thus, we have irc_R in Omega(n^0). ---------------------------------------- (28) Obligation: Innermost TRS: Rules: A__TERMS(z0) -> c(A__SQR(mark(z0)), MARK(z0)) A__TERMS(z0) -> c1 A__SQR(0') -> c2 A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__SQR(z0) -> c5 A__DBL(0') -> c6 A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__DBL(z0) -> c8 A__ADD(0', z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__ADD(z0, z1) -> c12 A__FIRST(0', z0) -> c13 A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) A__FIRST(z0, z1) -> c15 MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) MARK(0') -> c26 MARK(nil) -> c27 a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0') -> 0' a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0') -> 0' a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0', z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0', z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0') -> 0' mark(nil) -> nil Types: A__TERMS :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c:c1 c :: c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c:c1 A__SQR :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c2:c3:c4:c5 mark :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil MARK :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c1 :: c:c1 0' :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil c2 :: c2:c3:c4:c5 s :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c3 :: c9:c10:c11:c12 -> c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c2:c3:c4:c5 A__ADD :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c9:c10:c11:c12 a__sqr :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__dbl :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c4 :: c9:c10:c11:c12 -> c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c2:c3:c4:c5 A__DBL :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c6:c7:c8 c5 :: c2:c3:c4:c5 c6 :: c6:c7:c8 c7 :: c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c6:c7:c8 c8 :: c6:c7:c8 c9 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c10 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c11 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c12 :: c9:c10:c11:c12 A__FIRST :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c13:c14:c15 c13 :: c13:c14:c15 cons :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c14 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c13:c14:c15 c15 :: c13:c14:c15 terms :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c16 :: c:c1 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 sqr :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c17 :: c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 add :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c18 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c19 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 dbl :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c20 :: c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 first :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c21 :: c13:c14:c15 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c22 :: c13:c14:c15 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c23 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 recip :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c24 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c25 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c26 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 nil :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil c27 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 a__terms :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__add :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__first :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil hole_c:c11_28 :: c:c1 hole_0':s:cons:terms:sqr:add:dbl:first:recip:nil2_28 :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil hole_c2:c3:c4:c53_28 :: c2:c3:c4:c5 hole_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c274_28 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 hole_c9:c10:c11:c125_28 :: c9:c10:c11:c12 hole_c6:c7:c86_28 :: c6:c7:c8 hole_c13:c14:c157_28 :: c13:c14:c15 gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28 :: Nat -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil gen_c2:c3:c4:c59_28 :: Nat -> c2:c3:c4:c5 gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28 :: Nat -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 gen_c9:c10:c11:c1211_28 :: Nat -> c9:c10:c11:c12 gen_c6:c7:c812_28 :: Nat -> c6:c7:c8 Lemmas: mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1341099_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1341099_28), rt in Omega(0) a__dbl(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1353169_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(*(2, n1353169_28)), rt in Omega(0) a__sqr(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1354002_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(*(n1354002_28, n1354002_28)), rt in Omega(0) a__add(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1337565_28), gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(n1337565_28, b)), rt in Omega(0) Generator Equations: gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(0) <=> 0' gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(x, 1)) <=> s(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(x)) gen_c2:c3:c4:c59_28(0) <=> c2 gen_c2:c3:c4:c59_28(+(x, 1)) <=> c3(c9(c26), gen_c2:c3:c4:c59_28(x), c26) gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(0) <=> c26 gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(+(x, 1)) <=> c16(c(c2, c26), gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(x)) gen_c9:c10:c11:c1211_28(0) <=> c9(c26) gen_c9:c10:c11:c1211_28(+(x, 1)) <=> c10(gen_c9:c10:c11:c1211_28(x), c26) gen_c6:c7:c812_28(0) <=> c6 gen_c6:c7:c812_28(+(x, 1)) <=> c7(gen_c6:c7:c812_28(x), c26) The following defined symbols remain to be analysed: A__SQR, A__TERMS, MARK, A__ADD, A__DBL They will be analysed ascendingly in the following order: A__TERMS = A__SQR A__TERMS = MARK A__TERMS = A__ADD A__TERMS = A__DBL A__SQR = MARK A__SQR = A__ADD A__SQR = A__DBL MARK = A__ADD MARK = A__DBL A__ADD = A__DBL ---------------------------------------- (29) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: A__ADD(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1377429_28), gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b)) -> *13_28, rt in Omega(n1377429_28) Induction Base: A__ADD(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(0), gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b)) Induction Step: A__ADD(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(n1377429_28, 1)), gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b)) ->_R^Omega(1) c10(A__ADD(mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1377429_28)), mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b))), MARK(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1377429_28))) ->_L^Omega(0) c10(A__ADD(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1377429_28), mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b))), MARK(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1377429_28))) ->_L^Omega(0) c10(A__ADD(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1377429_28), gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b)), MARK(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1377429_28))) ->_IH c10(*13_28, MARK(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1377429_28))) We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (30) Complex Obligation (BEST) ---------------------------------------- (31) Obligation: Proved the lower bound n^1 for the following obligation: Innermost TRS: Rules: A__TERMS(z0) -> c(A__SQR(mark(z0)), MARK(z0)) A__TERMS(z0) -> c1 A__SQR(0') -> c2 A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__SQR(z0) -> c5 A__DBL(0') -> c6 A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__DBL(z0) -> c8 A__ADD(0', z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__ADD(z0, z1) -> c12 A__FIRST(0', z0) -> c13 A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) A__FIRST(z0, z1) -> c15 MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) MARK(0') -> c26 MARK(nil) -> c27 a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0') -> 0' a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0') -> 0' a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0', z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0', z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0') -> 0' mark(nil) -> nil Types: A__TERMS :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c:c1 c :: c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c:c1 A__SQR :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c2:c3:c4:c5 mark :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil MARK :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c1 :: c:c1 0' :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil c2 :: c2:c3:c4:c5 s :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c3 :: c9:c10:c11:c12 -> c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c2:c3:c4:c5 A__ADD :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c9:c10:c11:c12 a__sqr :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__dbl :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c4 :: c9:c10:c11:c12 -> c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c2:c3:c4:c5 A__DBL :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c6:c7:c8 c5 :: c2:c3:c4:c5 c6 :: c6:c7:c8 c7 :: c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c6:c7:c8 c8 :: c6:c7:c8 c9 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c10 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c11 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c12 :: c9:c10:c11:c12 A__FIRST :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c13:c14:c15 c13 :: c13:c14:c15 cons :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c14 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c13:c14:c15 c15 :: c13:c14:c15 terms :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c16 :: c:c1 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 sqr :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c17 :: c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 add :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c18 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c19 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 dbl :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c20 :: c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 first :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c21 :: c13:c14:c15 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c22 :: c13:c14:c15 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c23 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 recip :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c24 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c25 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c26 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 nil :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil c27 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 a__terms :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__add :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__first :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil hole_c:c11_28 :: c:c1 hole_0':s:cons:terms:sqr:add:dbl:first:recip:nil2_28 :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil hole_c2:c3:c4:c53_28 :: c2:c3:c4:c5 hole_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c274_28 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 hole_c9:c10:c11:c125_28 :: c9:c10:c11:c12 hole_c6:c7:c86_28 :: c6:c7:c8 hole_c13:c14:c157_28 :: c13:c14:c15 gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28 :: Nat -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil gen_c2:c3:c4:c59_28 :: Nat -> c2:c3:c4:c5 gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28 :: Nat -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 gen_c9:c10:c11:c1211_28 :: Nat -> c9:c10:c11:c12 gen_c6:c7:c812_28 :: Nat -> c6:c7:c8 Lemmas: mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1341099_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1341099_28), rt in Omega(0) a__dbl(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1353169_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(*(2, n1353169_28)), rt in Omega(0) a__sqr(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1354002_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(*(n1354002_28, n1354002_28)), rt in Omega(0) a__add(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1337565_28), gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(n1337565_28, b)), rt in Omega(0) Generator Equations: gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(0) <=> 0' gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(x, 1)) <=> s(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(x)) gen_c2:c3:c4:c59_28(0) <=> c2 gen_c2:c3:c4:c59_28(+(x, 1)) <=> c3(c9(c26), gen_c2:c3:c4:c59_28(x), c26) gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(0) <=> c26 gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(+(x, 1)) <=> c16(c(c2, c26), gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(x)) gen_c9:c10:c11:c1211_28(0) <=> c9(c26) gen_c9:c10:c11:c1211_28(+(x, 1)) <=> c10(gen_c9:c10:c11:c1211_28(x), c26) gen_c6:c7:c812_28(0) <=> c6 gen_c6:c7:c812_28(+(x, 1)) <=> c7(gen_c6:c7:c812_28(x), c26) The following defined symbols remain to be analysed: A__ADD, A__TERMS, MARK, A__DBL They will be analysed ascendingly in the following order: A__TERMS = A__SQR A__TERMS = MARK A__TERMS = A__ADD A__TERMS = A__DBL A__SQR = MARK A__SQR = A__ADD A__SQR = A__DBL MARK = A__ADD MARK = A__DBL A__ADD = A__DBL ---------------------------------------- (32) LowerBoundPropagationProof (FINISHED) Propagated lower bound. ---------------------------------------- (33) BOUNDS(n^1, INF) ---------------------------------------- (34) Obligation: Innermost TRS: Rules: A__TERMS(z0) -> c(A__SQR(mark(z0)), MARK(z0)) A__TERMS(z0) -> c1 A__SQR(0') -> c2 A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__SQR(z0) -> c5 A__DBL(0') -> c6 A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__DBL(z0) -> c8 A__ADD(0', z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__ADD(z0, z1) -> c12 A__FIRST(0', z0) -> c13 A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) A__FIRST(z0, z1) -> c15 MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) MARK(0') -> c26 MARK(nil) -> c27 a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0') -> 0' a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0') -> 0' a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0', z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0', z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0') -> 0' mark(nil) -> nil Types: A__TERMS :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c:c1 c :: c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c:c1 A__SQR :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c2:c3:c4:c5 mark :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil MARK :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c1 :: c:c1 0' :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil c2 :: c2:c3:c4:c5 s :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c3 :: c9:c10:c11:c12 -> c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c2:c3:c4:c5 A__ADD :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c9:c10:c11:c12 a__sqr :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__dbl :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c4 :: c9:c10:c11:c12 -> c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c2:c3:c4:c5 A__DBL :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c6:c7:c8 c5 :: c2:c3:c4:c5 c6 :: c6:c7:c8 c7 :: c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c6:c7:c8 c8 :: c6:c7:c8 c9 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c10 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c11 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c12 :: c9:c10:c11:c12 A__FIRST :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c13:c14:c15 c13 :: c13:c14:c15 cons :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c14 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c13:c14:c15 c15 :: c13:c14:c15 terms :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c16 :: c:c1 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 sqr :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c17 :: c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 add :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c18 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c19 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 dbl :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c20 :: c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 first :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c21 :: c13:c14:c15 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c22 :: c13:c14:c15 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c23 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 recip :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c24 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c25 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c26 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 nil :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil c27 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 a__terms :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__add :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__first :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil hole_c:c11_28 :: c:c1 hole_0':s:cons:terms:sqr:add:dbl:first:recip:nil2_28 :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil hole_c2:c3:c4:c53_28 :: c2:c3:c4:c5 hole_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c274_28 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 hole_c9:c10:c11:c125_28 :: c9:c10:c11:c12 hole_c6:c7:c86_28 :: c6:c7:c8 hole_c13:c14:c157_28 :: c13:c14:c15 gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28 :: Nat -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil gen_c2:c3:c4:c59_28 :: Nat -> c2:c3:c4:c5 gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28 :: Nat -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 gen_c9:c10:c11:c1211_28 :: Nat -> c9:c10:c11:c12 gen_c6:c7:c812_28 :: Nat -> c6:c7:c8 Lemmas: mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1341099_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1341099_28), rt in Omega(0) a__dbl(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1353169_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(*(2, n1353169_28)), rt in Omega(0) a__sqr(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1354002_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(*(n1354002_28, n1354002_28)), rt in Omega(0) a__add(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1337565_28), gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(n1337565_28, b)), rt in Omega(0) A__ADD(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1377429_28), gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b)) -> *13_28, rt in Omega(n1377429_28) Generator Equations: gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(0) <=> 0' gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(x, 1)) <=> s(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(x)) gen_c2:c3:c4:c59_28(0) <=> c2 gen_c2:c3:c4:c59_28(+(x, 1)) <=> c3(c9(c26), gen_c2:c3:c4:c59_28(x), c26) gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(0) <=> c26 gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(+(x, 1)) <=> c16(c(c2, c26), gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(x)) gen_c9:c10:c11:c1211_28(0) <=> c9(c26) gen_c9:c10:c11:c1211_28(+(x, 1)) <=> c10(gen_c9:c10:c11:c1211_28(x), c26) gen_c6:c7:c812_28(0) <=> c6 gen_c6:c7:c812_28(+(x, 1)) <=> c7(gen_c6:c7:c812_28(x), c26) The following defined symbols remain to be analysed: MARK, A__TERMS, A__SQR, A__DBL They will be analysed ascendingly in the following order: A__TERMS = A__SQR A__TERMS = MARK A__TERMS = A__ADD A__TERMS = A__DBL A__SQR = MARK A__SQR = A__ADD A__SQR = A__DBL MARK = A__ADD MARK = A__DBL A__ADD = A__DBL ---------------------------------------- (35) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: MARK(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(1, n1838531_28))) -> *13_28, rt in Omega(n1838531_28) Induction Base: MARK(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(1, 0))) Induction Step: MARK(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(1, +(n1838531_28, 1)))) ->_R^Omega(1) c25(MARK(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(1, n1838531_28)))) ->_IH c25(*13_28) We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (36) Obligation: Innermost TRS: Rules: A__TERMS(z0) -> c(A__SQR(mark(z0)), MARK(z0)) A__TERMS(z0) -> c1 A__SQR(0') -> c2 A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__SQR(z0) -> c5 A__DBL(0') -> c6 A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__DBL(z0) -> c8 A__ADD(0', z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__ADD(z0, z1) -> c12 A__FIRST(0', z0) -> c13 A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) A__FIRST(z0, z1) -> c15 MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) MARK(0') -> c26 MARK(nil) -> c27 a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0') -> 0' a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0') -> 0' a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0', z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0', z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0') -> 0' mark(nil) -> nil Types: A__TERMS :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c:c1 c :: c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c:c1 A__SQR :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c2:c3:c4:c5 mark :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil MARK :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c1 :: c:c1 0' :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil c2 :: c2:c3:c4:c5 s :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c3 :: c9:c10:c11:c12 -> c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c2:c3:c4:c5 A__ADD :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c9:c10:c11:c12 a__sqr :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__dbl :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c4 :: c9:c10:c11:c12 -> c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c2:c3:c4:c5 A__DBL :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c6:c7:c8 c5 :: c2:c3:c4:c5 c6 :: c6:c7:c8 c7 :: c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c6:c7:c8 c8 :: c6:c7:c8 c9 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c10 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c11 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c12 :: c9:c10:c11:c12 A__FIRST :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c13:c14:c15 c13 :: c13:c14:c15 cons :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c14 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c13:c14:c15 c15 :: c13:c14:c15 terms :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c16 :: c:c1 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 sqr :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c17 :: c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 add :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c18 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c19 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 dbl :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c20 :: c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 first :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c21 :: c13:c14:c15 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c22 :: c13:c14:c15 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c23 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 recip :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c24 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c25 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c26 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 nil :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil c27 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 a__terms :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__add :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__first :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil hole_c:c11_28 :: c:c1 hole_0':s:cons:terms:sqr:add:dbl:first:recip:nil2_28 :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil hole_c2:c3:c4:c53_28 :: c2:c3:c4:c5 hole_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c274_28 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 hole_c9:c10:c11:c125_28 :: c9:c10:c11:c12 hole_c6:c7:c86_28 :: c6:c7:c8 hole_c13:c14:c157_28 :: c13:c14:c15 gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28 :: Nat -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil gen_c2:c3:c4:c59_28 :: Nat -> c2:c3:c4:c5 gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28 :: Nat -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 gen_c9:c10:c11:c1211_28 :: Nat -> c9:c10:c11:c12 gen_c6:c7:c812_28 :: Nat -> c6:c7:c8 Lemmas: mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1341099_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1341099_28), rt in Omega(0) a__dbl(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1353169_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(*(2, n1353169_28)), rt in Omega(0) a__sqr(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1354002_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(*(n1354002_28, n1354002_28)), rt in Omega(0) a__add(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1337565_28), gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(n1337565_28, b)), rt in Omega(0) A__ADD(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1377429_28), gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b)) -> *13_28, rt in Omega(n1377429_28) MARK(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(1, n1838531_28))) -> *13_28, rt in Omega(n1838531_28) Generator Equations: gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(0) <=> 0' gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(x, 1)) <=> s(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(x)) gen_c2:c3:c4:c59_28(0) <=> c2 gen_c2:c3:c4:c59_28(+(x, 1)) <=> c3(c9(c26), gen_c2:c3:c4:c59_28(x), c26) gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(0) <=> c26 gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(+(x, 1)) <=> c16(c(c2, c26), gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(x)) gen_c9:c10:c11:c1211_28(0) <=> c9(c26) gen_c9:c10:c11:c1211_28(+(x, 1)) <=> c10(gen_c9:c10:c11:c1211_28(x), c26) gen_c6:c7:c812_28(0) <=> c6 gen_c6:c7:c812_28(+(x, 1)) <=> c7(gen_c6:c7:c812_28(x), c26) The following defined symbols remain to be analysed: A__TERMS, A__SQR, A__ADD, A__DBL They will be analysed ascendingly in the following order: A__TERMS = A__SQR A__TERMS = MARK A__TERMS = A__ADD A__TERMS = A__DBL A__SQR = MARK A__SQR = A__ADD A__SQR = A__DBL MARK = A__ADD MARK = A__DBL A__ADD = A__DBL ---------------------------------------- (37) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: A__DBL(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1993796_28)) -> *13_28, rt in Omega(n1993796_28) Induction Base: A__DBL(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(0)) Induction Step: A__DBL(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(n1993796_28, 1))) ->_R^Omega(1) c7(A__DBL(mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1993796_28))), MARK(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1993796_28))) ->_L^Omega(0) c7(A__DBL(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1993796_28)), MARK(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1993796_28))) ->_IH c7(*13_28, MARK(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1993796_28))) We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (38) Obligation: Innermost TRS: Rules: A__TERMS(z0) -> c(A__SQR(mark(z0)), MARK(z0)) A__TERMS(z0) -> c1 A__SQR(0') -> c2 A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__SQR(z0) -> c5 A__DBL(0') -> c6 A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__DBL(z0) -> c8 A__ADD(0', z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__ADD(z0, z1) -> c12 A__FIRST(0', z0) -> c13 A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) A__FIRST(z0, z1) -> c15 MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) MARK(0') -> c26 MARK(nil) -> c27 a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0') -> 0' a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0') -> 0' a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0', z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0', z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0') -> 0' mark(nil) -> nil Types: A__TERMS :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c:c1 c :: c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c:c1 A__SQR :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c2:c3:c4:c5 mark :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil MARK :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c1 :: c:c1 0' :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil c2 :: c2:c3:c4:c5 s :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c3 :: c9:c10:c11:c12 -> c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c2:c3:c4:c5 A__ADD :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c9:c10:c11:c12 a__sqr :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__dbl :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c4 :: c9:c10:c11:c12 -> c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c2:c3:c4:c5 A__DBL :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c6:c7:c8 c5 :: c2:c3:c4:c5 c6 :: c6:c7:c8 c7 :: c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c6:c7:c8 c8 :: c6:c7:c8 c9 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c10 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c11 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c12 :: c9:c10:c11:c12 A__FIRST :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c13:c14:c15 c13 :: c13:c14:c15 cons :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c14 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c13:c14:c15 c15 :: c13:c14:c15 terms :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c16 :: c:c1 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 sqr :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c17 :: c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 add :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c18 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c19 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 dbl :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c20 :: c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 first :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c21 :: c13:c14:c15 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c22 :: c13:c14:c15 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c23 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 recip :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c24 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c25 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c26 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 nil :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil c27 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 a__terms :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__add :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__first :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil hole_c:c11_28 :: c:c1 hole_0':s:cons:terms:sqr:add:dbl:first:recip:nil2_28 :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil hole_c2:c3:c4:c53_28 :: c2:c3:c4:c5 hole_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c274_28 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 hole_c9:c10:c11:c125_28 :: c9:c10:c11:c12 hole_c6:c7:c86_28 :: c6:c7:c8 hole_c13:c14:c157_28 :: c13:c14:c15 gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28 :: Nat -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil gen_c2:c3:c4:c59_28 :: Nat -> c2:c3:c4:c5 gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28 :: Nat -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 gen_c9:c10:c11:c1211_28 :: Nat -> c9:c10:c11:c12 gen_c6:c7:c812_28 :: Nat -> c6:c7:c8 Lemmas: mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1341099_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1341099_28), rt in Omega(0) a__dbl(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1353169_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(*(2, n1353169_28)), rt in Omega(0) a__sqr(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1354002_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(*(n1354002_28, n1354002_28)), rt in Omega(0) a__add(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1337565_28), gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(n1337565_28, b)), rt in Omega(0) A__ADD(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1377429_28), gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b)) -> *13_28, rt in Omega(n1377429_28) MARK(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(1, n1838531_28))) -> *13_28, rt in Omega(n1838531_28) A__DBL(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1993796_28)) -> *13_28, rt in Omega(n1993796_28) Generator Equations: gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(0) <=> 0' gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(x, 1)) <=> s(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(x)) gen_c2:c3:c4:c59_28(0) <=> c2 gen_c2:c3:c4:c59_28(+(x, 1)) <=> c3(c9(c26), gen_c2:c3:c4:c59_28(x), c26) gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(0) <=> c26 gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(+(x, 1)) <=> c16(c(c2, c26), gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(x)) gen_c9:c10:c11:c1211_28(0) <=> c9(c26) gen_c9:c10:c11:c1211_28(+(x, 1)) <=> c10(gen_c9:c10:c11:c1211_28(x), c26) gen_c6:c7:c812_28(0) <=> c6 gen_c6:c7:c812_28(+(x, 1)) <=> c7(gen_c6:c7:c812_28(x), c26) The following defined symbols remain to be analysed: A__SQR, A__TERMS, MARK, A__ADD They will be analysed ascendingly in the following order: A__TERMS = A__SQR A__TERMS = MARK A__TERMS = A__ADD A__TERMS = A__DBL A__SQR = MARK A__SQR = A__ADD A__SQR = A__DBL MARK = A__ADD MARK = A__DBL A__ADD = A__DBL ---------------------------------------- (39) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: A__ADD(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n2900977_28), gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b)) -> *13_28, rt in Omega(n2900977_28) Induction Base: A__ADD(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(0), gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b)) Induction Step: A__ADD(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(n2900977_28, 1)), gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b)) ->_R^Omega(1) c10(A__ADD(mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n2900977_28)), mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b))), MARK(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n2900977_28))) ->_L^Omega(0) c10(A__ADD(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n2900977_28), mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b))), MARK(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n2900977_28))) ->_L^Omega(0) c10(A__ADD(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n2900977_28), gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b)), MARK(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n2900977_28))) ->_IH c10(*13_28, MARK(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n2900977_28))) We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (40) Obligation: Innermost TRS: Rules: A__TERMS(z0) -> c(A__SQR(mark(z0)), MARK(z0)) A__TERMS(z0) -> c1 A__SQR(0') -> c2 A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__SQR(z0) -> c5 A__DBL(0') -> c6 A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__DBL(z0) -> c8 A__ADD(0', z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__ADD(z0, z1) -> c12 A__FIRST(0', z0) -> c13 A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) A__FIRST(z0, z1) -> c15 MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) MARK(0') -> c26 MARK(nil) -> c27 a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0') -> 0' a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0') -> 0' a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0', z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0', z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0') -> 0' mark(nil) -> nil Types: A__TERMS :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c:c1 c :: c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c:c1 A__SQR :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c2:c3:c4:c5 mark :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil MARK :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c1 :: c:c1 0' :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil c2 :: c2:c3:c4:c5 s :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c3 :: c9:c10:c11:c12 -> c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c2:c3:c4:c5 A__ADD :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c9:c10:c11:c12 a__sqr :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__dbl :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c4 :: c9:c10:c11:c12 -> c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c2:c3:c4:c5 A__DBL :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c6:c7:c8 c5 :: c2:c3:c4:c5 c6 :: c6:c7:c8 c7 :: c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c6:c7:c8 c8 :: c6:c7:c8 c9 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c10 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c11 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c12 :: c9:c10:c11:c12 A__FIRST :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c13:c14:c15 c13 :: c13:c14:c15 cons :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c14 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c13:c14:c15 c15 :: c13:c14:c15 terms :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c16 :: c:c1 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 sqr :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c17 :: c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 add :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c18 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c19 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 dbl :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c20 :: c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 first :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c21 :: c13:c14:c15 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c22 :: c13:c14:c15 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c23 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 recip :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c24 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c25 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c26 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 nil :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil c27 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 a__terms :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__add :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__first :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil hole_c:c11_28 :: c:c1 hole_0':s:cons:terms:sqr:add:dbl:first:recip:nil2_28 :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil hole_c2:c3:c4:c53_28 :: c2:c3:c4:c5 hole_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c274_28 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 hole_c9:c10:c11:c125_28 :: c9:c10:c11:c12 hole_c6:c7:c86_28 :: c6:c7:c8 hole_c13:c14:c157_28 :: c13:c14:c15 gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28 :: Nat -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil gen_c2:c3:c4:c59_28 :: Nat -> c2:c3:c4:c5 gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28 :: Nat -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 gen_c9:c10:c11:c1211_28 :: Nat -> c9:c10:c11:c12 gen_c6:c7:c812_28 :: Nat -> c6:c7:c8 Lemmas: mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1341099_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1341099_28), rt in Omega(0) a__dbl(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1353169_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(*(2, n1353169_28)), rt in Omega(0) a__sqr(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1354002_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(*(n1354002_28, n1354002_28)), rt in Omega(0) a__add(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1337565_28), gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(n1337565_28, b)), rt in Omega(0) A__ADD(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n2900977_28), gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b)) -> *13_28, rt in Omega(n2900977_28) MARK(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(1, n1838531_28))) -> *13_28, rt in Omega(n1838531_28) A__DBL(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1993796_28)) -> *13_28, rt in Omega(n1993796_28) Generator Equations: gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(0) <=> 0' gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(x, 1)) <=> s(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(x)) gen_c2:c3:c4:c59_28(0) <=> c2 gen_c2:c3:c4:c59_28(+(x, 1)) <=> c3(c9(c26), gen_c2:c3:c4:c59_28(x), c26) gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(0) <=> c26 gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(+(x, 1)) <=> c16(c(c2, c26), gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(x)) gen_c9:c10:c11:c1211_28(0) <=> c9(c26) gen_c9:c10:c11:c1211_28(+(x, 1)) <=> c10(gen_c9:c10:c11:c1211_28(x), c26) gen_c6:c7:c812_28(0) <=> c6 gen_c6:c7:c812_28(+(x, 1)) <=> c7(gen_c6:c7:c812_28(x), c26) The following defined symbols remain to be analysed: MARK, A__TERMS They will be analysed ascendingly in the following order: A__TERMS = A__SQR A__TERMS = MARK A__TERMS = A__ADD A__TERMS = A__DBL A__SQR = MARK A__SQR = A__ADD A__SQR = A__DBL MARK = A__ADD MARK = A__DBL A__ADD = A__DBL ---------------------------------------- (41) RewriteLemmaProof (LOWER BOUND(ID)) Proved the following rewrite lemma: MARK(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(1, n3369433_28))) -> *13_28, rt in Omega(n3369433_28) Induction Base: MARK(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(1, 0))) Induction Step: MARK(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(1, +(n3369433_28, 1)))) ->_R^Omega(1) c25(MARK(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(1, n3369433_28)))) ->_IH c25(*13_28) We have rt in Omega(n^1) and sz in O(n). Thus, we have irc_R in Omega(n). ---------------------------------------- (42) Obligation: Innermost TRS: Rules: A__TERMS(z0) -> c(A__SQR(mark(z0)), MARK(z0)) A__TERMS(z0) -> c1 A__SQR(0') -> c2 A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__SQR(z0) -> c5 A__DBL(0') -> c6 A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__DBL(z0) -> c8 A__ADD(0', z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__ADD(z0, z1) -> c12 A__FIRST(0', z0) -> c13 A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) A__FIRST(z0, z1) -> c15 MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) MARK(0') -> c26 MARK(nil) -> c27 a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0') -> 0' a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0') -> 0' a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0', z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0', z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0') -> 0' mark(nil) -> nil Types: A__TERMS :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c:c1 c :: c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c:c1 A__SQR :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c2:c3:c4:c5 mark :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil MARK :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c1 :: c:c1 0' :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil c2 :: c2:c3:c4:c5 s :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c3 :: c9:c10:c11:c12 -> c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c2:c3:c4:c5 A__ADD :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c9:c10:c11:c12 a__sqr :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__dbl :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c4 :: c9:c10:c11:c12 -> c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c2:c3:c4:c5 A__DBL :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c6:c7:c8 c5 :: c2:c3:c4:c5 c6 :: c6:c7:c8 c7 :: c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c6:c7:c8 c8 :: c6:c7:c8 c9 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c10 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c11 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c9:c10:c11:c12 c12 :: c9:c10:c11:c12 A__FIRST :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> c13:c14:c15 c13 :: c13:c14:c15 cons :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c14 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c13:c14:c15 c15 :: c13:c14:c15 terms :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c16 :: c:c1 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 sqr :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c17 :: c2:c3:c4:c5 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 add :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c18 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c19 :: c9:c10:c11:c12 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 dbl :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c20 :: c6:c7:c8 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 first :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c21 :: c13:c14:c15 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c22 :: c13:c14:c15 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c23 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 recip :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil c24 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c25 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 c26 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 nil :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil c27 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 a__terms :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__add :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil a__first :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil hole_c:c11_28 :: c:c1 hole_0':s:cons:terms:sqr:add:dbl:first:recip:nil2_28 :: 0':s:cons:terms:sqr:add:dbl:first:recip:nil hole_c2:c3:c4:c53_28 :: c2:c3:c4:c5 hole_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c274_28 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 hole_c9:c10:c11:c125_28 :: c9:c10:c11:c12 hole_c6:c7:c86_28 :: c6:c7:c8 hole_c13:c14:c157_28 :: c13:c14:c15 gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28 :: Nat -> 0':s:cons:terms:sqr:add:dbl:first:recip:nil gen_c2:c3:c4:c59_28 :: Nat -> c2:c3:c4:c5 gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28 :: Nat -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c27 gen_c9:c10:c11:c1211_28 :: Nat -> c9:c10:c11:c12 gen_c6:c7:c812_28 :: Nat -> c6:c7:c8 Lemmas: mark(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1341099_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1341099_28), rt in Omega(0) a__dbl(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1353169_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(*(2, n1353169_28)), rt in Omega(0) a__sqr(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1354002_28)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(*(n1354002_28, n1354002_28)), rt in Omega(0) a__add(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1337565_28), gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b)) -> gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(n1337565_28, b)), rt in Omega(0) A__ADD(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n2900977_28), gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(b)) -> *13_28, rt in Omega(n2900977_28) MARK(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(1, n3369433_28))) -> *13_28, rt in Omega(n3369433_28) A__DBL(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(n1993796_28)) -> *13_28, rt in Omega(n1993796_28) Generator Equations: gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(0) <=> 0' gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(+(x, 1)) <=> s(gen_0':s:cons:terms:sqr:add:dbl:first:recip:nil8_28(x)) gen_c2:c3:c4:c59_28(0) <=> c2 gen_c2:c3:c4:c59_28(+(x, 1)) <=> c3(c9(c26), gen_c2:c3:c4:c59_28(x), c26) gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(0) <=> c26 gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(+(x, 1)) <=> c16(c(c2, c26), gen_c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:c26:c2710_28(x)) gen_c9:c10:c11:c1211_28(0) <=> c9(c26) gen_c9:c10:c11:c1211_28(+(x, 1)) <=> c10(gen_c9:c10:c11:c1211_28(x), c26) gen_c6:c7:c812_28(0) <=> c6 gen_c6:c7:c812_28(+(x, 1)) <=> c7(gen_c6:c7:c812_28(x), c26) The following defined symbols remain to be analysed: A__TERMS They will be analysed ascendingly in the following order: A__TERMS = A__SQR A__TERMS = MARK A__TERMS = A__ADD A__TERMS = A__DBL A__SQR = MARK A__SQR = A__ADD A__SQR = A__DBL MARK = A__ADD MARK = A__DBL A__ADD = A__DBL ---------------------------------------- (43) RelTrsToWeightedTrsProof (UPPER BOUND(ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (44) 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__terms(N) -> cons(recip(a__sqr(mark(N))), terms(s(N))) [1] a__sqr(0) -> 0 [1] a__sqr(s(X)) -> s(a__add(a__sqr(mark(X)), a__dbl(mark(X)))) [1] a__dbl(0) -> 0 [1] a__dbl(s(X)) -> s(s(a__dbl(mark(X)))) [1] a__add(0, X) -> mark(X) [1] a__add(s(X), Y) -> s(a__add(mark(X), mark(Y))) [1] a__first(0, X) -> nil [1] a__first(s(X), cons(Y, Z)) -> cons(mark(Y), first(X, Z)) [1] mark(terms(X)) -> a__terms(mark(X)) [1] mark(sqr(X)) -> a__sqr(mark(X)) [1] mark(add(X1, X2)) -> a__add(mark(X1), mark(X2)) [1] mark(dbl(X)) -> a__dbl(mark(X)) [1] mark(first(X1, X2)) -> a__first(mark(X1), mark(X2)) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] mark(recip(X)) -> recip(mark(X)) [1] mark(s(X)) -> s(mark(X)) [1] mark(0) -> 0 [1] mark(nil) -> nil [1] a__terms(X) -> terms(X) [1] a__sqr(X) -> sqr(X) [1] a__add(X1, X2) -> add(X1, X2) [1] a__dbl(X) -> dbl(X) [1] a__first(X1, X2) -> first(X1, X2) [1] Rewrite Strategy: INNERMOST ---------------------------------------- (45) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (46) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: a__terms(N) -> cons(recip(a__sqr(mark(N))), terms(s(N))) [1] a__sqr(0) -> 0 [1] a__sqr(s(X)) -> s(a__add(a__sqr(mark(X)), a__dbl(mark(X)))) [1] a__dbl(0) -> 0 [1] a__dbl(s(X)) -> s(s(a__dbl(mark(X)))) [1] a__add(0, X) -> mark(X) [1] a__add(s(X), Y) -> s(a__add(mark(X), mark(Y))) [1] a__first(0, X) -> nil [1] a__first(s(X), cons(Y, Z)) -> cons(mark(Y), first(X, Z)) [1] mark(terms(X)) -> a__terms(mark(X)) [1] mark(sqr(X)) -> a__sqr(mark(X)) [1] mark(add(X1, X2)) -> a__add(mark(X1), mark(X2)) [1] mark(dbl(X)) -> a__dbl(mark(X)) [1] mark(first(X1, X2)) -> a__first(mark(X1), mark(X2)) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] mark(recip(X)) -> recip(mark(X)) [1] mark(s(X)) -> s(mark(X)) [1] mark(0) -> 0 [1] mark(nil) -> nil [1] a__terms(X) -> terms(X) [1] a__sqr(X) -> sqr(X) [1] a__add(X1, X2) -> add(X1, X2) [1] a__dbl(X) -> dbl(X) [1] a__first(X1, X2) -> first(X1, X2) [1] The TRS has the following type information: a__terms :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl cons :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl recip :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl a__sqr :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl mark :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl terms :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl s :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl 0 :: recip:s:terms:cons:0:nil:first:sqr:add:dbl a__add :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl a__dbl :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl a__first :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl nil :: recip:s:terms:cons:0:nil:first:sqr:add:dbl first :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl sqr :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl add :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl dbl :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl Rewrite Strategy: INNERMOST ---------------------------------------- (47) 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 ---------------------------------------- (48) 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__terms(N) -> cons(recip(a__sqr(mark(N))), terms(s(N))) [1] a__sqr(0) -> 0 [1] a__sqr(s(X)) -> s(a__add(a__sqr(mark(X)), a__dbl(mark(X)))) [1] a__dbl(0) -> 0 [1] a__dbl(s(X)) -> s(s(a__dbl(mark(X)))) [1] a__add(0, X) -> mark(X) [1] a__add(s(X), Y) -> s(a__add(mark(X), mark(Y))) [1] a__first(0, X) -> nil [1] a__first(s(X), cons(Y, Z)) -> cons(mark(Y), first(X, Z)) [1] mark(terms(X)) -> a__terms(mark(X)) [1] mark(sqr(X)) -> a__sqr(mark(X)) [1] mark(add(X1, X2)) -> a__add(mark(X1), mark(X2)) [1] mark(dbl(X)) -> a__dbl(mark(X)) [1] mark(first(X1, X2)) -> a__first(mark(X1), mark(X2)) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] mark(recip(X)) -> recip(mark(X)) [1] mark(s(X)) -> s(mark(X)) [1] mark(0) -> 0 [1] mark(nil) -> nil [1] a__terms(X) -> terms(X) [1] a__sqr(X) -> sqr(X) [1] a__add(X1, X2) -> add(X1, X2) [1] a__dbl(X) -> dbl(X) [1] a__first(X1, X2) -> first(X1, X2) [1] The TRS has the following type information: a__terms :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl cons :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl recip :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl a__sqr :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl mark :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl terms :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl s :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl 0 :: recip:s:terms:cons:0:nil:first:sqr:add:dbl a__add :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl a__dbl :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl a__first :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl nil :: recip:s:terms:cons:0:nil:first:sqr:add:dbl first :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl sqr :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl add :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl dbl :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl Rewrite Strategy: INNERMOST ---------------------------------------- (49) 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 ---------------------------------------- (50) 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 + a__add(mark(X), mark(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__dbl(z) -{ 1 }-> 0 :|: z = 0 a__dbl(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__dbl(z) -{ 1 }-> 1 + (1 + a__dbl(mark(X))) :|: z = 1 + X, X >= 0 a__first(z, z') -{ 1 }-> 1 :|: z' = X, X >= 0, z = 0 a__first(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__first(z, z') -{ 1 }-> 1 + mark(Y) + (1 + X + Z) :|: Z >= 0, z = 1 + X, Y >= 0, X >= 0, z' = 1 + Y + Z a__sqr(z) -{ 1 }-> 0 :|: z = 0 a__sqr(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__sqr(z) -{ 1 }-> 1 + a__add(a__sqr(mark(X)), a__dbl(mark(X))) :|: z = 1 + X, X >= 0 a__terms(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__terms(z) -{ 1 }-> 1 + (1 + a__sqr(mark(N))) + (1 + (1 + N)) :|: z = N, N >= 0 mark(z) -{ 1 }-> a__terms(mark(X)) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__sqr(mark(X)) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__first(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> a__dbl(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 + mark(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> 1 + mark(X1) + X2 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 Only complete derivations are relevant for the runtime complexity. ---------------------------------------- (51) CompletionProof (UPPER BOUND(ID)) The transformation into a RNTS is sound, since: (a) The obligation is a constructor system where every type has a constant constructor, (b) The following defined symbols do not have to be completely defined, as they can never occur inside other defined symbols: none (c) The following functions are completely defined: mark_1 a__sqr_1 a__dbl_1 a__add_2 a__terms_1 a__first_2 Due to the following rules being added: none And the following fresh constants: none ---------------------------------------- (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__terms(N) -> cons(recip(a__sqr(mark(N))), terms(s(N))) [1] a__sqr(0) -> 0 [1] a__sqr(s(X)) -> s(a__add(a__sqr(mark(X)), a__dbl(mark(X)))) [1] a__dbl(0) -> 0 [1] a__dbl(s(X)) -> s(s(a__dbl(mark(X)))) [1] a__add(0, X) -> mark(X) [1] a__add(s(X), Y) -> s(a__add(mark(X), mark(Y))) [1] a__first(0, X) -> nil [1] a__first(s(X), cons(Y, Z)) -> cons(mark(Y), first(X, Z)) [1] mark(terms(X)) -> a__terms(mark(X)) [1] mark(sqr(X)) -> a__sqr(mark(X)) [1] mark(add(X1, X2)) -> a__add(mark(X1), mark(X2)) [1] mark(dbl(X)) -> a__dbl(mark(X)) [1] mark(first(X1, X2)) -> a__first(mark(X1), mark(X2)) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] mark(recip(X)) -> recip(mark(X)) [1] mark(s(X)) -> s(mark(X)) [1] mark(0) -> 0 [1] mark(nil) -> nil [1] a__terms(X) -> terms(X) [1] a__sqr(X) -> sqr(X) [1] a__add(X1, X2) -> add(X1, X2) [1] a__dbl(X) -> dbl(X) [1] a__first(X1, X2) -> first(X1, X2) [1] The TRS has the following type information: a__terms :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl cons :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl recip :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl a__sqr :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl mark :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl terms :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl s :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl 0 :: recip:s:terms:cons:0:nil:first:sqr:add:dbl a__add :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl a__dbl :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl a__first :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl nil :: recip:s:terms:cons:0:nil:first:sqr:add:dbl first :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl sqr :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl add :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl dbl :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl Rewrite Strategy: INNERMOST ---------------------------------------- (53) NarrowingProof (BOTH BOUNDS(ID, ID)) Narrowed the inner basic terms of all right-hand sides by a single narrowing step. ---------------------------------------- (54) Obligation: Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: a__terms(terms(X')) -> cons(recip(a__sqr(a__terms(mark(X')))), terms(s(terms(X')))) [2] a__terms(sqr(X'')) -> cons(recip(a__sqr(a__sqr(mark(X'')))), terms(s(sqr(X'')))) [2] a__terms(add(X1', X2')) -> cons(recip(a__sqr(a__add(mark(X1'), mark(X2')))), terms(s(add(X1', X2')))) [2] a__terms(dbl(X3)) -> cons(recip(a__sqr(a__dbl(mark(X3)))), terms(s(dbl(X3)))) [2] a__terms(first(X1'', X2'')) -> cons(recip(a__sqr(a__first(mark(X1''), mark(X2'')))), terms(s(first(X1'', X2'')))) [2] a__terms(cons(X11, X21)) -> cons(recip(a__sqr(cons(mark(X11), X21))), terms(s(cons(X11, X21)))) [2] a__terms(recip(X4)) -> cons(recip(a__sqr(recip(mark(X4)))), terms(s(recip(X4)))) [2] a__terms(s(X5)) -> cons(recip(a__sqr(s(mark(X5)))), terms(s(s(X5)))) [2] a__terms(0) -> cons(recip(a__sqr(0)), terms(s(0))) [2] a__terms(nil) -> cons(recip(a__sqr(nil)), terms(s(nil))) [2] a__sqr(0) -> 0 [1] a__sqr(s(terms(X6))) -> s(a__add(a__sqr(a__terms(mark(X6))), a__dbl(a__terms(mark(X6))))) [3] a__sqr(s(sqr(X7))) -> s(a__add(a__sqr(a__sqr(mark(X7))), a__dbl(a__sqr(mark(X7))))) [3] a__sqr(s(add(X12, X22))) -> s(a__add(a__sqr(a__add(mark(X12), mark(X22))), a__dbl(a__add(mark(X12), mark(X22))))) [3] a__sqr(s(dbl(X8))) -> s(a__add(a__sqr(a__dbl(mark(X8))), a__dbl(a__dbl(mark(X8))))) [3] a__sqr(s(first(X13, X23))) -> s(a__add(a__sqr(a__first(mark(X13), mark(X23))), a__dbl(a__first(mark(X13), mark(X23))))) [3] a__sqr(s(cons(X14, X24))) -> s(a__add(a__sqr(cons(mark(X14), X24)), a__dbl(cons(mark(X14), X24)))) [3] a__sqr(s(recip(X9))) -> s(a__add(a__sqr(recip(mark(X9))), a__dbl(recip(mark(X9))))) [3] a__sqr(s(s(X10))) -> s(a__add(a__sqr(s(mark(X10))), a__dbl(s(mark(X10))))) [3] a__sqr(s(0)) -> s(a__add(a__sqr(0), a__dbl(0))) [3] a__sqr(s(nil)) -> s(a__add(a__sqr(nil), a__dbl(nil))) [3] a__dbl(0) -> 0 [1] a__dbl(s(terms(X15))) -> s(s(a__dbl(a__terms(mark(X15))))) [2] a__dbl(s(sqr(X16))) -> s(s(a__dbl(a__sqr(mark(X16))))) [2] a__dbl(s(add(X17, X25))) -> s(s(a__dbl(a__add(mark(X17), mark(X25))))) [2] a__dbl(s(dbl(X18))) -> s(s(a__dbl(a__dbl(mark(X18))))) [2] a__dbl(s(first(X19, X26))) -> s(s(a__dbl(a__first(mark(X19), mark(X26))))) [2] a__dbl(s(cons(X110, X27))) -> s(s(a__dbl(cons(mark(X110), X27)))) [2] a__dbl(s(recip(X20))) -> s(s(a__dbl(recip(mark(X20))))) [2] a__dbl(s(s(X28))) -> s(s(a__dbl(s(mark(X28))))) [2] a__dbl(s(0)) -> s(s(a__dbl(0))) [2] a__dbl(s(nil)) -> s(s(a__dbl(nil))) [2] a__add(0, X) -> mark(X) [1] a__add(s(X), Y) -> s(a__add(mark(X), mark(Y))) [1] a__first(0, X) -> nil [1] a__first(s(X), cons(Y, Z)) -> cons(mark(Y), first(X, Z)) [1] mark(terms(terms(X84))) -> a__terms(a__terms(mark(X84))) [2] mark(terms(sqr(X85))) -> a__terms(a__sqr(mark(X85))) [2] mark(terms(add(X144, X243))) -> a__terms(a__add(mark(X144), mark(X243))) [2] mark(terms(dbl(X86))) -> a__terms(a__dbl(mark(X86))) [2] mark(terms(first(X145, X244))) -> a__terms(a__first(mark(X145), mark(X244))) [2] mark(terms(cons(X146, X245))) -> a__terms(cons(mark(X146), X245)) [2] mark(terms(recip(X87))) -> a__terms(recip(mark(X87))) [2] mark(terms(s(X88))) -> a__terms(s(mark(X88))) [2] mark(terms(0)) -> a__terms(0) [2] mark(terms(nil)) -> a__terms(nil) [2] mark(sqr(terms(X89))) -> a__sqr(a__terms(mark(X89))) [2] mark(sqr(sqr(X90))) -> a__sqr(a__sqr(mark(X90))) [2] mark(sqr(add(X147, X246))) -> a__sqr(a__add(mark(X147), mark(X246))) [2] mark(sqr(dbl(X91))) -> a__sqr(a__dbl(mark(X91))) [2] mark(sqr(first(X148, X247))) -> a__sqr(a__first(mark(X148), mark(X247))) [2] mark(sqr(cons(X149, X248))) -> a__sqr(cons(mark(X149), X248)) [2] mark(sqr(recip(X92))) -> a__sqr(recip(mark(X92))) [2] mark(sqr(s(X93))) -> a__sqr(s(mark(X93))) [2] mark(sqr(0)) -> a__sqr(0) [2] mark(sqr(nil)) -> a__sqr(nil) [2] mark(add(X1, X2)) -> a__add(mark(X1), mark(X2)) [1] mark(dbl(terms(X285))) -> a__dbl(a__terms(mark(X285))) [2] mark(dbl(sqr(X286))) -> a__dbl(a__sqr(mark(X286))) [2] mark(dbl(add(X1109, X287))) -> a__dbl(a__add(mark(X1109), mark(X287))) [2] mark(dbl(dbl(X288))) -> a__dbl(a__dbl(mark(X288))) [2] mark(dbl(first(X1110, X289))) -> a__dbl(a__first(mark(X1110), mark(X289))) [2] mark(dbl(cons(X1111, X290))) -> a__dbl(cons(mark(X1111), X290)) [2] mark(dbl(recip(X291))) -> a__dbl(recip(mark(X291))) [2] mark(dbl(s(X292))) -> a__dbl(s(mark(X292))) [2] mark(dbl(0)) -> a__dbl(0) [2] mark(dbl(nil)) -> a__dbl(nil) [2] mark(first(X1, X2)) -> a__first(mark(X1), mark(X2)) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] mark(recip(X)) -> recip(mark(X)) [1] mark(s(X)) -> s(mark(X)) [1] mark(0) -> 0 [1] mark(nil) -> nil [1] a__terms(X) -> terms(X) [1] a__sqr(X) -> sqr(X) [1] a__add(X1, X2) -> add(X1, X2) [1] a__dbl(X) -> dbl(X) [1] a__first(X1, X2) -> first(X1, X2) [1] The TRS has the following type information: a__terms :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl cons :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl recip :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl a__sqr :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl mark :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl terms :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl s :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl 0 :: recip:s:terms:cons:0:nil:first:sqr:add:dbl a__add :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl a__dbl :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl a__first :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl nil :: recip:s:terms:cons:0:nil:first:sqr:add:dbl first :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl sqr :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl add :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl dbl :: recip:s:terms:cons:0:nil:first:sqr:add:dbl -> recip:s:terms:cons:0:nil:first:sqr:add:dbl Rewrite Strategy: INNERMOST ---------------------------------------- (55) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: 0 => 0 nil => 1 ---------------------------------------- (56) 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 + a__add(mark(X), mark(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__dbl(z) -{ 1 }-> 0 :|: z = 0 a__dbl(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__dbl(z) -{ 2 }-> 1 + (1 + a__dbl(a__terms(mark(X15)))) :|: z = 1 + (1 + X15), X15 >= 0 a__dbl(z) -{ 2 }-> 1 + (1 + a__dbl(a__sqr(mark(X16)))) :|: X16 >= 0, z = 1 + (1 + X16) a__dbl(z) -{ 2 }-> 1 + (1 + a__dbl(a__first(mark(X19), mark(X26)))) :|: z = 1 + (1 + X19 + X26), X26 >= 0, X19 >= 0 a__dbl(z) -{ 2 }-> 1 + (1 + a__dbl(a__dbl(mark(X18)))) :|: X18 >= 0, z = 1 + (1 + X18) a__dbl(z) -{ 2 }-> 1 + (1 + a__dbl(a__add(mark(X17), mark(X25)))) :|: X17 >= 0, z = 1 + (1 + X17 + X25), X25 >= 0 a__dbl(z) -{ 2 }-> 1 + (1 + a__dbl(1)) :|: z = 1 + 1 a__dbl(z) -{ 2 }-> 1 + (1 + a__dbl(0)) :|: z = 1 + 0 a__dbl(z) -{ 2 }-> 1 + (1 + a__dbl(1 + mark(X20))) :|: z = 1 + (1 + X20), X20 >= 0 a__dbl(z) -{ 2 }-> 1 + (1 + a__dbl(1 + mark(X28))) :|: X28 >= 0, z = 1 + (1 + X28) a__dbl(z) -{ 2 }-> 1 + (1 + a__dbl(1 + mark(X110) + X27)) :|: X110 >= 0, X27 >= 0, z = 1 + (1 + X110 + X27) a__first(z, z') -{ 1 }-> 1 :|: z' = X, X >= 0, z = 0 a__first(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__first(z, z') -{ 1 }-> 1 + mark(Y) + (1 + X + Z) :|: Z >= 0, z = 1 + X, Y >= 0, X >= 0, z' = 1 + Y + Z a__sqr(z) -{ 1 }-> 0 :|: z = 0 a__sqr(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__sqr(z) -{ 3 }-> 1 + a__add(a__sqr(a__terms(mark(X6))), a__dbl(a__terms(mark(X6)))) :|: X6 >= 0, z = 1 + (1 + X6) a__sqr(z) -{ 3 }-> 1 + a__add(a__sqr(a__sqr(mark(X7))), a__dbl(a__sqr(mark(X7)))) :|: X7 >= 0, z = 1 + (1 + X7) a__sqr(z) -{ 3 }-> 1 + a__add(a__sqr(a__first(mark(X13), mark(X23))), a__dbl(a__first(mark(X13), mark(X23)))) :|: z = 1 + (1 + X13 + X23), X13 >= 0, X23 >= 0 a__sqr(z) -{ 3 }-> 1 + a__add(a__sqr(a__dbl(mark(X8))), a__dbl(a__dbl(mark(X8)))) :|: X8 >= 0, z = 1 + (1 + X8) a__sqr(z) -{ 3 }-> 1 + a__add(a__sqr(a__add(mark(X12), mark(X22))), a__dbl(a__add(mark(X12), mark(X22)))) :|: X12 >= 0, X22 >= 0, z = 1 + (1 + X12 + X22) a__sqr(z) -{ 3 }-> 1 + a__add(a__sqr(1), a__dbl(1)) :|: z = 1 + 1 a__sqr(z) -{ 3 }-> 1 + a__add(a__sqr(0), a__dbl(0)) :|: z = 1 + 0 a__sqr(z) -{ 3 }-> 1 + a__add(a__sqr(1 + mark(X10)), a__dbl(1 + mark(X10))) :|: z = 1 + (1 + X10), X10 >= 0 a__sqr(z) -{ 3 }-> 1 + a__add(a__sqr(1 + mark(X9)), a__dbl(1 + mark(X9))) :|: X9 >= 0, z = 1 + (1 + X9) a__sqr(z) -{ 3 }-> 1 + a__add(a__sqr(1 + mark(X14) + X24), a__dbl(1 + mark(X14) + X24)) :|: z = 1 + (1 + X14 + X24), X14 >= 0, X24 >= 0 a__terms(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__terms(z) -{ 2 }-> 1 + (1 + a__sqr(a__terms(mark(X')))) + (1 + (1 + (1 + X'))) :|: X' >= 0, z = 1 + X' a__terms(z) -{ 2 }-> 1 + (1 + a__sqr(a__sqr(mark(X'')))) + (1 + (1 + (1 + X''))) :|: z = 1 + X'', X'' >= 0 a__terms(z) -{ 2 }-> 1 + (1 + a__sqr(a__first(mark(X1''), mark(X2'')))) + (1 + (1 + (1 + X1'' + X2''))) :|: X1'' >= 0, z = 1 + X1'' + X2'', X2'' >= 0 a__terms(z) -{ 2 }-> 1 + (1 + a__sqr(a__dbl(mark(X3)))) + (1 + (1 + (1 + X3))) :|: z = 1 + X3, X3 >= 0 a__terms(z) -{ 2 }-> 1 + (1 + a__sqr(a__add(mark(X1'), mark(X2')))) + (1 + (1 + (1 + X1' + X2'))) :|: X2' >= 0, X1' >= 0, z = 1 + X1' + X2' a__terms(z) -{ 2 }-> 1 + (1 + a__sqr(1)) + (1 + (1 + 1)) :|: z = 1 a__terms(z) -{ 2 }-> 1 + (1 + a__sqr(0)) + (1 + (1 + 0)) :|: z = 0 a__terms(z) -{ 2 }-> 1 + (1 + a__sqr(1 + mark(X4))) + (1 + (1 + (1 + X4))) :|: z = 1 + X4, X4 >= 0 a__terms(z) -{ 2 }-> 1 + (1 + a__sqr(1 + mark(X5))) + (1 + (1 + (1 + X5))) :|: X5 >= 0, z = 1 + X5 a__terms(z) -{ 2 }-> 1 + (1 + a__sqr(1 + mark(X11) + X21)) + (1 + (1 + (1 + X11 + X21))) :|: X11 >= 0, X21 >= 0, z = 1 + X11 + X21 mark(z) -{ 2 }-> a__terms(a__terms(mark(X84))) :|: z = 1 + (1 + X84), X84 >= 0 mark(z) -{ 2 }-> a__terms(a__sqr(mark(X85))) :|: z = 1 + (1 + X85), X85 >= 0 mark(z) -{ 2 }-> a__terms(a__first(mark(X145), mark(X244))) :|: X244 >= 0, z = 1 + (1 + X145 + X244), X145 >= 0 mark(z) -{ 2 }-> a__terms(a__dbl(mark(X86))) :|: z = 1 + (1 + X86), X86 >= 0 mark(z) -{ 2 }-> a__terms(a__add(mark(X144), mark(X243))) :|: X243 >= 0, X144 >= 0, z = 1 + (1 + X144 + X243) mark(z) -{ 2 }-> a__terms(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__terms(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__terms(1 + mark(X87)) :|: X87 >= 0, z = 1 + (1 + X87) mark(z) -{ 2 }-> a__terms(1 + mark(X88)) :|: X88 >= 0, z = 1 + (1 + X88) mark(z) -{ 2 }-> a__terms(1 + mark(X146) + X245) :|: X146 >= 0, X245 >= 0, z = 1 + (1 + X146 + X245) mark(z) -{ 2 }-> a__sqr(a__terms(mark(X89))) :|: X89 >= 0, z = 1 + (1 + X89) mark(z) -{ 2 }-> a__sqr(a__sqr(mark(X90))) :|: z = 1 + (1 + X90), X90 >= 0 mark(z) -{ 2 }-> a__sqr(a__first(mark(X148), mark(X247))) :|: z = 1 + (1 + X148 + X247), X148 >= 0, X247 >= 0 mark(z) -{ 2 }-> a__sqr(a__dbl(mark(X91))) :|: X91 >= 0, z = 1 + (1 + X91) mark(z) -{ 2 }-> a__sqr(a__add(mark(X147), mark(X246))) :|: X147 >= 0, X246 >= 0, z = 1 + (1 + X147 + X246) mark(z) -{ 2 }-> a__sqr(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__sqr(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__sqr(1 + mark(X92)) :|: X92 >= 0, z = 1 + (1 + X92) mark(z) -{ 2 }-> a__sqr(1 + mark(X93)) :|: z = 1 + (1 + X93), X93 >= 0 mark(z) -{ 2 }-> a__sqr(1 + mark(X149) + X248) :|: X149 >= 0, X248 >= 0, z = 1 + (1 + X149 + X248) mark(z) -{ 1 }-> a__first(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> a__dbl(a__terms(mark(X285))) :|: z = 1 + (1 + X285), X285 >= 0 mark(z) -{ 2 }-> a__dbl(a__sqr(mark(X286))) :|: X286 >= 0, z = 1 + (1 + X286) mark(z) -{ 2 }-> a__dbl(a__first(mark(X1110), mark(X289))) :|: X1110 >= 0, X289 >= 0, z = 1 + (1 + X1110 + X289) mark(z) -{ 2 }-> a__dbl(a__dbl(mark(X288))) :|: z = 1 + (1 + X288), X288 >= 0 mark(z) -{ 2 }-> a__dbl(a__add(mark(X1109), mark(X287))) :|: z = 1 + (1 + X1109 + X287), X287 >= 0, X1109 >= 0 mark(z) -{ 2 }-> a__dbl(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__dbl(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__dbl(1 + mark(X291)) :|: X291 >= 0, z = 1 + (1 + X291) mark(z) -{ 2 }-> a__dbl(1 + mark(X292)) :|: X292 >= 0, z = 1 + (1 + X292) mark(z) -{ 2 }-> a__dbl(1 + mark(X1111) + X290) :|: X1111 >= 0, z = 1 + (1 + X1111 + X290), X290 >= 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 + mark(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> 1 + mark(X1) + X2 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 ---------------------------------------- (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 }-> mark(z') :|: z' >= 0, z = 0 a__add(z, z') -{ 1 }-> 1 + a__add(mark(z - 1), mark(z')) :|: z' >= 0, z - 1 >= 0 a__add(z, z') -{ 1 }-> 1 + z + z' :|: z >= 0, z' >= 0 a__dbl(z) -{ 1 }-> 0 :|: z = 0 a__dbl(z) -{ 1 }-> 1 + z :|: z >= 0 a__dbl(z) -{ 2 }-> 1 + (1 + a__dbl(a__terms(mark(z - 2)))) :|: z - 2 >= 0 a__dbl(z) -{ 2 }-> 1 + (1 + a__dbl(a__sqr(mark(z - 2)))) :|: z - 2 >= 0 a__dbl(z) -{ 2 }-> 1 + (1 + a__dbl(a__first(mark(X19), mark(X26)))) :|: z = 1 + (1 + X19 + X26), X26 >= 0, X19 >= 0 a__dbl(z) -{ 2 }-> 1 + (1 + a__dbl(a__dbl(mark(z - 2)))) :|: z - 2 >= 0 a__dbl(z) -{ 2 }-> 1 + (1 + a__dbl(a__add(mark(X17), mark(X25)))) :|: X17 >= 0, z = 1 + (1 + X17 + X25), X25 >= 0 a__dbl(z) -{ 2 }-> 1 + (1 + a__dbl(1)) :|: z = 1 + 1 a__dbl(z) -{ 2 }-> 1 + (1 + a__dbl(0)) :|: z = 1 + 0 a__dbl(z) -{ 2 }-> 1 + (1 + a__dbl(1 + mark(z - 2))) :|: z - 2 >= 0 a__dbl(z) -{ 2 }-> 1 + (1 + a__dbl(1 + mark(X110) + X27)) :|: X110 >= 0, X27 >= 0, z = 1 + (1 + X110 + X27) a__first(z, z') -{ 1 }-> 1 :|: z' >= 0, z = 0 a__first(z, z') -{ 1 }-> 1 + z + z' :|: z >= 0, z' >= 0 a__first(z, z') -{ 1 }-> 1 + mark(Y) + (1 + (z - 1) + Z) :|: Z >= 0, Y >= 0, z - 1 >= 0, z' = 1 + Y + Z a__sqr(z) -{ 1 }-> 0 :|: z = 0 a__sqr(z) -{ 1 }-> 1 + z :|: z >= 0 a__sqr(z) -{ 3 }-> 1 + a__add(a__sqr(a__terms(mark(z - 2))), a__dbl(a__terms(mark(z - 2)))) :|: z - 2 >= 0 a__sqr(z) -{ 3 }-> 1 + a__add(a__sqr(a__sqr(mark(z - 2))), a__dbl(a__sqr(mark(z - 2)))) :|: z - 2 >= 0 a__sqr(z) -{ 3 }-> 1 + a__add(a__sqr(a__first(mark(X13), mark(X23))), a__dbl(a__first(mark(X13), mark(X23)))) :|: z = 1 + (1 + X13 + X23), X13 >= 0, X23 >= 0 a__sqr(z) -{ 3 }-> 1 + a__add(a__sqr(a__dbl(mark(z - 2))), a__dbl(a__dbl(mark(z - 2)))) :|: z - 2 >= 0 a__sqr(z) -{ 3 }-> 1 + a__add(a__sqr(a__add(mark(X12), mark(X22))), a__dbl(a__add(mark(X12), mark(X22)))) :|: X12 >= 0, X22 >= 0, z = 1 + (1 + X12 + X22) a__sqr(z) -{ 3 }-> 1 + a__add(a__sqr(1), a__dbl(1)) :|: z = 1 + 1 a__sqr(z) -{ 3 }-> 1 + a__add(a__sqr(0), a__dbl(0)) :|: z = 1 + 0 a__sqr(z) -{ 3 }-> 1 + a__add(a__sqr(1 + mark(z - 2)), a__dbl(1 + mark(z - 2))) :|: z - 2 >= 0 a__sqr(z) -{ 3 }-> 1 + a__add(a__sqr(1 + mark(X14) + X24), a__dbl(1 + mark(X14) + X24)) :|: z = 1 + (1 + X14 + X24), X14 >= 0, X24 >= 0 a__terms(z) -{ 1 }-> 1 + z :|: z >= 0 a__terms(z) -{ 2 }-> 1 + (1 + a__sqr(a__terms(mark(z - 1)))) + (1 + (1 + (1 + (z - 1)))) :|: z - 1 >= 0 a__terms(z) -{ 2 }-> 1 + (1 + a__sqr(a__sqr(mark(z - 1)))) + (1 + (1 + (1 + (z - 1)))) :|: z - 1 >= 0 a__terms(z) -{ 2 }-> 1 + (1 + a__sqr(a__first(mark(X1''), mark(X2'')))) + (1 + (1 + (1 + X1'' + X2''))) :|: X1'' >= 0, z = 1 + X1'' + X2'', X2'' >= 0 a__terms(z) -{ 2 }-> 1 + (1 + a__sqr(a__dbl(mark(z - 1)))) + (1 + (1 + (1 + (z - 1)))) :|: z - 1 >= 0 a__terms(z) -{ 2 }-> 1 + (1 + a__sqr(a__add(mark(X1'), mark(X2')))) + (1 + (1 + (1 + X1' + X2'))) :|: X2' >= 0, X1' >= 0, z = 1 + X1' + X2' a__terms(z) -{ 2 }-> 1 + (1 + a__sqr(1)) + (1 + (1 + 1)) :|: z = 1 a__terms(z) -{ 2 }-> 1 + (1 + a__sqr(0)) + (1 + (1 + 0)) :|: z = 0 a__terms(z) -{ 2 }-> 1 + (1 + a__sqr(1 + mark(z - 1))) + (1 + (1 + (1 + (z - 1)))) :|: z - 1 >= 0 a__terms(z) -{ 2 }-> 1 + (1 + a__sqr(1 + mark(X11) + X21)) + (1 + (1 + (1 + X11 + X21))) :|: X11 >= 0, X21 >= 0, z = 1 + X11 + X21 mark(z) -{ 2 }-> a__terms(a__terms(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__terms(a__sqr(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__terms(a__first(mark(X145), mark(X244))) :|: X244 >= 0, z = 1 + (1 + X145 + X244), X145 >= 0 mark(z) -{ 2 }-> a__terms(a__dbl(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__terms(a__add(mark(X144), mark(X243))) :|: X243 >= 0, X144 >= 0, z = 1 + (1 + X144 + X243) mark(z) -{ 2 }-> a__terms(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__terms(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__terms(1 + mark(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__terms(1 + mark(X146) + X245) :|: X146 >= 0, X245 >= 0, z = 1 + (1 + X146 + X245) mark(z) -{ 2 }-> a__sqr(a__terms(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__sqr(a__sqr(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__sqr(a__first(mark(X148), mark(X247))) :|: z = 1 + (1 + X148 + X247), X148 >= 0, X247 >= 0 mark(z) -{ 2 }-> a__sqr(a__dbl(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__sqr(a__add(mark(X147), mark(X246))) :|: X147 >= 0, X246 >= 0, z = 1 + (1 + X147 + X246) mark(z) -{ 2 }-> a__sqr(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__sqr(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__sqr(1 + mark(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__sqr(1 + mark(X149) + X248) :|: X149 >= 0, X248 >= 0, z = 1 + (1 + X149 + X248) mark(z) -{ 1 }-> a__first(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> a__dbl(a__terms(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__dbl(a__sqr(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__dbl(a__first(mark(X1110), mark(X289))) :|: X1110 >= 0, X289 >= 0, z = 1 + (1 + X1110 + X289) mark(z) -{ 2 }-> a__dbl(a__dbl(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__dbl(a__add(mark(X1109), mark(X287))) :|: z = 1 + (1 + X1109 + X287), X287 >= 0, X1109 >= 0 mark(z) -{ 2 }-> a__dbl(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__dbl(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__dbl(1 + mark(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__dbl(1 + mark(X1111) + X290) :|: X1111 >= 0, z = 1 + (1 + X1111 + X290), X290 >= 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 + mark(z - 1) :|: z - 1 >= 0 mark(z) -{ 1 }-> 1 + mark(X1) + X2 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 ---------------------------------------- (59) CpxTrsToCdtProof (UPPER BOUND(ID)) Converted Cpx (relative) TRS with rewrite strategy PARALLEL_INNERMOST to CDT ---------------------------------------- (60) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__TERMS(z0) -> c(A__SQR(mark(z0)), MARK(z0)) A__TERMS(z0) -> c1 A__SQR(0) -> c2 A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__SQR(z0) -> c5 A__DBL(0) -> c6 A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__DBL(z0) -> c8 A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__ADD(z0, z1) -> c12 A__FIRST(0, z0) -> c13 A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) A__FIRST(z0, z1) -> c15 MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) MARK(0) -> c26 MARK(nil) -> c27 S tuples: A__TERMS(z0) -> c(A__SQR(mark(z0)), MARK(z0)) A__TERMS(z0) -> c1 A__SQR(0) -> c2 A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__SQR(z0) -> c5 A__DBL(0) -> c6 A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__DBL(z0) -> c8 A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__ADD(z0, z1) -> c12 A__FIRST(0, z0) -> c13 A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) A__FIRST(z0, z1) -> c15 MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) MARK(0) -> c26 MARK(nil) -> c27 K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__TERMS_1, A__SQR_1, A__DBL_1, A__ADD_2, A__FIRST_2, MARK_1 Compound Symbols: c_2, c1, c2, c3_3, c4_3, c5, c6, c7_2, c8, c9_1, c10_2, c11_2, c12, c13, c14_1, c15, c16_2, c17_2, c18_2, c19_2, c20_2, c21_2, c22_2, c23_1, c24_1, c25_1, c26, c27 ---------------------------------------- (61) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 10 trailing nodes: MARK(nil) -> c27 A__FIRST(0, z0) -> c13 A__DBL(z0) -> c8 A__ADD(z0, z1) -> c12 A__SQR(0) -> c2 A__TERMS(z0) -> c1 A__FIRST(z0, z1) -> c15 A__DBL(0) -> c6 MARK(0) -> c26 A__SQR(z0) -> c5 ---------------------------------------- (62) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__TERMS(z0) -> c(A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) S tuples: A__TERMS(z0) -> c(A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__TERMS_1, A__SQR_1, A__DBL_1, A__ADD_2, A__FIRST_2, MARK_1 Compound Symbols: c_2, c3_3, c4_3, c7_2, c9_1, c10_2, c11_2, c14_1, c16_2, c17_2, c18_2, c19_2, c20_2, c21_2, c22_2, c23_1, c24_1, c25_1 ---------------------------------------- (63) CdtToCpxRelTrsProof (BOTH BOUNDS(ID, ID)) Converted S to standard rules, and D \ S as well as R to relative rules. ---------------------------------------- (64) 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__TERMS(z0) -> c(A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) The (relative) TRS S consists of the following rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Rewrite Strategy: INNERMOST ---------------------------------------- (65) RelTrsToTrsProof (UPPER BOUND(ID)) transformed relative TRS to TRS ---------------------------------------- (66) 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__TERMS(z0) -> c(A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil S is empty. Rewrite Strategy: INNERMOST ---------------------------------------- (67) RelTrsToWeightedTrsProof (BOTH BOUNDS(ID, ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (68) 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__TERMS(z0) -> c(A__SQR(mark(z0)), MARK(z0)) [1] A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) [1] A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) [1] A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) [1] A__ADD(0, z0) -> c9(MARK(z0)) [1] A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) [1] A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) [1] A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) [1] MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) [1] MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) [1] MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) [1] MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) [1] MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) [1] MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) [1] MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) [1] MARK(cons(z0, z1)) -> c23(MARK(z0)) [1] MARK(recip(z0)) -> c24(MARK(z0)) [1] MARK(s(z0)) -> c25(MARK(z0)) [1] a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) [0] a__terms(z0) -> terms(z0) [0] a__sqr(0) -> 0 [0] a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) [0] a__sqr(z0) -> sqr(z0) [0] a__dbl(0) -> 0 [0] a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) [0] a__dbl(z0) -> dbl(z0) [0] a__add(0, z0) -> mark(z0) [0] a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) [0] a__add(z0, z1) -> add(z0, z1) [0] a__first(0, z0) -> nil [0] a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) [0] a__first(z0, z1) -> first(z0, z1) [0] mark(terms(z0)) -> a__terms(mark(z0)) [0] mark(sqr(z0)) -> a__sqr(mark(z0)) [0] mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) [0] mark(dbl(z0)) -> a__dbl(mark(z0)) [0] mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] mark(recip(z0)) -> recip(mark(z0)) [0] mark(s(z0)) -> s(mark(z0)) [0] mark(0) -> 0 [0] mark(nil) -> nil [0] Rewrite Strategy: INNERMOST ---------------------------------------- (69) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (70) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: A__TERMS(z0) -> c(A__SQR(mark(z0)), MARK(z0)) [1] A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) [1] A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) [1] A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) [1] A__ADD(0, z0) -> c9(MARK(z0)) [1] A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) [1] A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) [1] A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) [1] MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) [1] MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) [1] MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) [1] MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) [1] MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) [1] MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) [1] MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) [1] MARK(cons(z0, z1)) -> c23(MARK(z0)) [1] MARK(recip(z0)) -> c24(MARK(z0)) [1] MARK(s(z0)) -> c25(MARK(z0)) [1] a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) [0] a__terms(z0) -> terms(z0) [0] a__sqr(0) -> 0 [0] a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) [0] a__sqr(z0) -> sqr(z0) [0] a__dbl(0) -> 0 [0] a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) [0] a__dbl(z0) -> dbl(z0) [0] a__add(0, z0) -> mark(z0) [0] a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) [0] a__add(z0, z1) -> add(z0, z1) [0] a__first(0, z0) -> nil [0] a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) [0] a__first(z0, z1) -> first(z0, z1) [0] mark(terms(z0)) -> a__terms(mark(z0)) [0] mark(sqr(z0)) -> a__sqr(mark(z0)) [0] mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) [0] mark(dbl(z0)) -> a__dbl(mark(z0)) [0] mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] mark(recip(z0)) -> recip(mark(z0)) [0] mark(s(z0)) -> s(mark(z0)) [0] mark(0) -> 0 [0] mark(nil) -> nil [0] The TRS has the following type information: A__TERMS :: s:0:cons:terms:sqr:add:dbl:first:recip:nil -> c c :: c3:c4 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c A__SQR :: s:0:cons:terms:sqr:add:dbl:first:recip:nil -> c3:c4 mark :: s:0:cons:terms:sqr:add:dbl:first:recip:nil -> s:0:cons:terms:sqr:add:dbl:first:recip:nil MARK :: s:0:cons:terms:sqr:add:dbl:first:recip:nil -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 s :: s:0:cons:terms:sqr:add:dbl:first:recip:nil -> s:0:cons:terms:sqr:add:dbl:first:recip:nil c3 :: c9:c10:c11 -> c3:c4 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c3:c4 A__ADD :: s:0:cons:terms:sqr:add:dbl:first:recip:nil -> s:0:cons:terms:sqr:add:dbl:first:recip:nil -> c9:c10:c11 a__sqr :: s:0:cons:terms:sqr:add:dbl:first:recip:nil -> s:0:cons:terms:sqr:add:dbl:first:recip:nil a__dbl :: s:0:cons:terms:sqr:add:dbl:first:recip:nil -> s:0:cons:terms:sqr:add:dbl:first:recip:nil c4 :: c9:c10:c11 -> c7 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c3:c4 A__DBL :: s:0:cons:terms:sqr:add:dbl:first:recip:nil -> c7 c7 :: c7 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c7 0 :: s:0:cons:terms:sqr:add:dbl:first:recip:nil c9 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c9:c10:c11 c10 :: c9:c10:c11 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c9:c10:c11 c11 :: c9:c10:c11 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c9:c10:c11 A__FIRST :: s:0:cons:terms:sqr:add:dbl:first:recip:nil -> s:0:cons:terms:sqr:add:dbl:first:recip:nil -> c14 cons :: s:0:cons:terms:sqr:add:dbl:first:recip:nil -> s:0:cons:terms:sqr:add:dbl:first:recip:nil -> s:0:cons:terms:sqr:add:dbl:first:recip:nil c14 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c14 terms :: s:0:cons:terms:sqr:add:dbl:first:recip:nil -> s:0:cons:terms:sqr:add:dbl:first:recip:nil c16 :: c -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 sqr :: s:0:cons:terms:sqr:add:dbl:first:recip:nil -> s:0:cons:terms:sqr:add:dbl:first:recip:nil c17 :: c3:c4 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 add :: s:0:cons:terms:sqr:add:dbl:first:recip:nil -> s:0:cons:terms:sqr:add:dbl:first:recip:nil -> s:0:cons:terms:sqr:add:dbl:first:recip:nil c18 :: c9:c10:c11 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 c19 :: c9:c10:c11 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 dbl :: s:0:cons:terms:sqr:add:dbl:first:recip:nil -> s:0:cons:terms:sqr:add:dbl:first:recip:nil c20 :: c7 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 first :: s:0:cons:terms:sqr:add:dbl:first:recip:nil -> s:0:cons:terms:sqr:add:dbl:first:recip:nil -> s:0:cons:terms:sqr:add:dbl:first:recip:nil c21 :: c14 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 c22 :: c14 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 c23 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 recip :: s:0:cons:terms:sqr:add:dbl:first:recip:nil -> s:0:cons:terms:sqr:add:dbl:first:recip:nil c24 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 c25 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 a__terms :: s:0:cons:terms:sqr:add:dbl:first:recip:nil -> s:0:cons:terms:sqr:add:dbl:first:recip:nil a__add :: s:0:cons:terms:sqr:add:dbl:first:recip:nil -> s:0:cons:terms:sqr:add:dbl:first:recip:nil -> s:0:cons:terms:sqr:add:dbl:first:recip:nil a__first :: s:0:cons:terms:sqr:add:dbl:first:recip:nil -> s:0:cons:terms:sqr:add:dbl:first:recip:nil -> s:0:cons:terms:sqr:add:dbl:first:recip:nil nil :: s:0:cons:terms:sqr:add:dbl:first:recip:nil Rewrite Strategy: INNERMOST ---------------------------------------- (71) 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__TERMS_1 A__SQR_1 A__DBL_1 A__ADD_2 A__FIRST_2 MARK_1 (c) The following functions are completely defined: a__terms_1 a__sqr_1 a__dbl_1 a__add_2 a__first_2 mark_1 Due to the following rules being added: a__terms(v0) -> null_a__terms [0] a__sqr(v0) -> null_a__sqr [0] a__dbl(v0) -> null_a__dbl [0] a__add(v0, v1) -> null_a__add [0] a__first(v0, v1) -> null_a__first [0] mark(v0) -> null_mark [0] And the following fresh constants: null_a__terms, null_a__sqr, null_a__dbl, null_a__add, null_a__first, null_mark, const, const1, const2, const3, const4, const5 ---------------------------------------- (72) 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__TERMS(z0) -> c(A__SQR(mark(z0)), MARK(z0)) [1] A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) [1] A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) [1] A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) [1] A__ADD(0, z0) -> c9(MARK(z0)) [1] A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) [1] A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) [1] A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) [1] MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) [1] MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) [1] MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) [1] MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) [1] MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) [1] MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) [1] MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) [1] MARK(cons(z0, z1)) -> c23(MARK(z0)) [1] MARK(recip(z0)) -> c24(MARK(z0)) [1] MARK(s(z0)) -> c25(MARK(z0)) [1] a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) [0] a__terms(z0) -> terms(z0) [0] a__sqr(0) -> 0 [0] a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) [0] a__sqr(z0) -> sqr(z0) [0] a__dbl(0) -> 0 [0] a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) [0] a__dbl(z0) -> dbl(z0) [0] a__add(0, z0) -> mark(z0) [0] a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) [0] a__add(z0, z1) -> add(z0, z1) [0] a__first(0, z0) -> nil [0] a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) [0] a__first(z0, z1) -> first(z0, z1) [0] mark(terms(z0)) -> a__terms(mark(z0)) [0] mark(sqr(z0)) -> a__sqr(mark(z0)) [0] mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) [0] mark(dbl(z0)) -> a__dbl(mark(z0)) [0] mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] mark(recip(z0)) -> recip(mark(z0)) [0] mark(s(z0)) -> s(mark(z0)) [0] mark(0) -> 0 [0] mark(nil) -> nil [0] a__terms(v0) -> null_a__terms [0] a__sqr(v0) -> null_a__sqr [0] a__dbl(v0) -> null_a__dbl [0] a__add(v0, v1) -> null_a__add [0] a__first(v0, v1) -> null_a__first [0] mark(v0) -> null_mark [0] The TRS has the following type information: A__TERMS :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> c c :: c3:c4 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c A__SQR :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> c3:c4 mark :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark MARK :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 s :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark c3 :: c9:c10:c11 -> c3:c4 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c3:c4 A__ADD :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> c9:c10:c11 a__sqr :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark a__dbl :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark c4 :: c9:c10:c11 -> c7 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c3:c4 A__DBL :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> c7 c7 :: c7 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c7 0 :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark c9 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c9:c10:c11 c10 :: c9:c10:c11 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c9:c10:c11 c11 :: c9:c10:c11 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c9:c10:c11 A__FIRST :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> c14 cons :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark c14 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c14 terms :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark c16 :: c -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 sqr :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark c17 :: c3:c4 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 add :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark c18 :: c9:c10:c11 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 c19 :: c9:c10:c11 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 dbl :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark c20 :: c7 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 first :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark c21 :: c14 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 c22 :: c14 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 c23 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 recip :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark c24 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 c25 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 a__terms :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark a__add :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark a__first :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark nil :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark null_a__terms :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark null_a__sqr :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark null_a__dbl :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark null_a__add :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark null_a__first :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark null_mark :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark const :: c const1 :: c3:c4 const2 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 const3 :: c9:c10:c11 const4 :: c7 const5 :: c14 Rewrite Strategy: INNERMOST ---------------------------------------- (73) NarrowingProof (BOTH BOUNDS(ID, ID)) Narrowed the inner basic terms of all right-hand sides by a single narrowing step. ---------------------------------------- (74) 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__TERMS(terms(z0')) -> c(A__SQR(a__terms(mark(z0'))), MARK(terms(z0'))) [1] A__TERMS(sqr(z0'')) -> c(A__SQR(a__sqr(mark(z0''))), MARK(sqr(z0''))) [1] A__TERMS(add(z01, z1')) -> c(A__SQR(a__add(mark(z01), mark(z1'))), MARK(add(z01, z1'))) [1] A__TERMS(dbl(z02)) -> c(A__SQR(a__dbl(mark(z02))), MARK(dbl(z02))) [1] A__TERMS(first(z03, z1'')) -> c(A__SQR(a__first(mark(z03), mark(z1''))), MARK(first(z03, z1''))) [1] A__TERMS(cons(z04, z11)) -> c(A__SQR(cons(mark(z04), z11)), MARK(cons(z04, z11))) [1] A__TERMS(recip(z05)) -> c(A__SQR(recip(mark(z05))), MARK(recip(z05))) [1] A__TERMS(s(z06)) -> c(A__SQR(s(mark(z06))), MARK(s(z06))) [1] A__TERMS(0) -> c(A__SQR(0), MARK(0)) [1] A__TERMS(nil) -> c(A__SQR(nil), MARK(nil)) [1] A__TERMS(z0) -> c(A__SQR(null_mark), MARK(z0)) [1] A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) [1] A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) [1] A__DBL(s(terms(z055))) -> c7(A__DBL(a__terms(mark(z055))), MARK(terms(z055))) [1] A__DBL(s(sqr(z056))) -> c7(A__DBL(a__sqr(mark(z056))), MARK(sqr(z056))) [1] A__DBL(s(add(z057, z120))) -> c7(A__DBL(a__add(mark(z057), mark(z120))), MARK(add(z057, z120))) [1] A__DBL(s(dbl(z058))) -> c7(A__DBL(a__dbl(mark(z058))), MARK(dbl(z058))) [1] A__DBL(s(first(z059, z121))) -> c7(A__DBL(a__first(mark(z059), mark(z121))), MARK(first(z059, z121))) [1] A__DBL(s(cons(z060, z122))) -> c7(A__DBL(cons(mark(z060), z122)), MARK(cons(z060, z122))) [1] A__DBL(s(recip(z061))) -> c7(A__DBL(recip(mark(z061))), MARK(recip(z061))) [1] A__DBL(s(s(z062))) -> c7(A__DBL(s(mark(z062))), MARK(s(z062))) [1] A__DBL(s(0)) -> c7(A__DBL(0), MARK(0)) [1] A__DBL(s(nil)) -> c7(A__DBL(nil), MARK(nil)) [1] A__DBL(s(z0)) -> c7(A__DBL(null_mark), MARK(z0)) [1] A__ADD(0, z0) -> c9(MARK(z0)) [1] A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) [1] A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) [1] A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) [1] MARK(terms(terms(z0255))) -> c16(A__TERMS(a__terms(mark(z0255))), MARK(terms(z0255))) [1] MARK(terms(sqr(z0256))) -> c16(A__TERMS(a__sqr(mark(z0256))), MARK(sqr(z0256))) [1] MARK(terms(add(z0257, z195))) -> c16(A__TERMS(a__add(mark(z0257), mark(z195))), MARK(add(z0257, z195))) [1] MARK(terms(dbl(z0258))) -> c16(A__TERMS(a__dbl(mark(z0258))), MARK(dbl(z0258))) [1] MARK(terms(first(z0259, z196))) -> c16(A__TERMS(a__first(mark(z0259), mark(z196))), MARK(first(z0259, z196))) [1] MARK(terms(cons(z0260, z197))) -> c16(A__TERMS(cons(mark(z0260), z197)), MARK(cons(z0260, z197))) [1] MARK(terms(recip(z0261))) -> c16(A__TERMS(recip(mark(z0261))), MARK(recip(z0261))) [1] MARK(terms(s(z0262))) -> c16(A__TERMS(s(mark(z0262))), MARK(s(z0262))) [1] MARK(terms(0)) -> c16(A__TERMS(0), MARK(0)) [1] MARK(terms(nil)) -> c16(A__TERMS(nil), MARK(nil)) [1] MARK(terms(z0)) -> c16(A__TERMS(null_mark), MARK(z0)) [1] MARK(sqr(terms(z0263))) -> c17(A__SQR(a__terms(mark(z0263))), MARK(terms(z0263))) [1] MARK(sqr(sqr(z0264))) -> c17(A__SQR(a__sqr(mark(z0264))), MARK(sqr(z0264))) [1] MARK(sqr(add(z0265, z198))) -> c17(A__SQR(a__add(mark(z0265), mark(z198))), MARK(add(z0265, z198))) [1] MARK(sqr(dbl(z0266))) -> c17(A__SQR(a__dbl(mark(z0266))), MARK(dbl(z0266))) [1] MARK(sqr(first(z0267, z199))) -> c17(A__SQR(a__first(mark(z0267), mark(z199))), MARK(first(z0267, z199))) [1] MARK(sqr(cons(z0268, z1100))) -> c17(A__SQR(cons(mark(z0268), z1100)), MARK(cons(z0268, z1100))) [1] MARK(sqr(recip(z0269))) -> c17(A__SQR(recip(mark(z0269))), MARK(recip(z0269))) [1] MARK(sqr(s(z0270))) -> c17(A__SQR(s(mark(z0270))), MARK(s(z0270))) [1] MARK(sqr(0)) -> c17(A__SQR(0), MARK(0)) [1] MARK(sqr(nil)) -> c17(A__SQR(nil), MARK(nil)) [1] MARK(sqr(z0)) -> c17(A__SQR(null_mark), MARK(z0)) [1] MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) [1] MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) [1] MARK(dbl(terms(z0463))) -> c20(A__DBL(a__terms(mark(z0463))), MARK(terms(z0463))) [1] MARK(dbl(sqr(z0464))) -> c20(A__DBL(a__sqr(mark(z0464))), MARK(sqr(z0464))) [1] MARK(dbl(add(z0465, z1173))) -> c20(A__DBL(a__add(mark(z0465), mark(z1173))), MARK(add(z0465, z1173))) [1] MARK(dbl(dbl(z0466))) -> c20(A__DBL(a__dbl(mark(z0466))), MARK(dbl(z0466))) [1] MARK(dbl(first(z0467, z1174))) -> c20(A__DBL(a__first(mark(z0467), mark(z1174))), MARK(first(z0467, z1174))) [1] MARK(dbl(cons(z0468, z1175))) -> c20(A__DBL(cons(mark(z0468), z1175)), MARK(cons(z0468, z1175))) [1] MARK(dbl(recip(z0469))) -> c20(A__DBL(recip(mark(z0469))), MARK(recip(z0469))) [1] MARK(dbl(s(z0470))) -> c20(A__DBL(s(mark(z0470))), MARK(s(z0470))) [1] MARK(dbl(0)) -> c20(A__DBL(0), MARK(0)) [1] MARK(dbl(nil)) -> c20(A__DBL(nil), MARK(nil)) [1] MARK(dbl(z0)) -> c20(A__DBL(null_mark), MARK(z0)) [1] MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) [1] MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) [1] MARK(cons(z0, z1)) -> c23(MARK(z0)) [1] MARK(recip(z0)) -> c24(MARK(z0)) [1] MARK(s(z0)) -> c25(MARK(z0)) [1] a__terms(terms(z0663)) -> cons(recip(a__sqr(a__terms(mark(z0663)))), terms(s(terms(z0663)))) [0] a__terms(sqr(z0664)) -> cons(recip(a__sqr(a__sqr(mark(z0664)))), terms(s(sqr(z0664)))) [0] a__terms(add(z0665, z1248)) -> cons(recip(a__sqr(a__add(mark(z0665), mark(z1248)))), terms(s(add(z0665, z1248)))) [0] a__terms(dbl(z0666)) -> cons(recip(a__sqr(a__dbl(mark(z0666)))), terms(s(dbl(z0666)))) [0] a__terms(first(z0667, z1249)) -> cons(recip(a__sqr(a__first(mark(z0667), mark(z1249)))), terms(s(first(z0667, z1249)))) [0] a__terms(cons(z0668, z1250)) -> cons(recip(a__sqr(cons(mark(z0668), z1250))), terms(s(cons(z0668, z1250)))) [0] a__terms(recip(z0669)) -> cons(recip(a__sqr(recip(mark(z0669)))), terms(s(recip(z0669)))) [0] a__terms(s(z0670)) -> cons(recip(a__sqr(s(mark(z0670)))), terms(s(s(z0670)))) [0] a__terms(0) -> cons(recip(a__sqr(0)), terms(s(0))) [0] a__terms(nil) -> cons(recip(a__sqr(nil)), terms(s(nil))) [0] a__terms(z0) -> cons(recip(a__sqr(null_mark)), terms(s(z0))) [0] a__terms(z0) -> terms(z0) [0] a__sqr(0) -> 0 [0] a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) [0] a__sqr(z0) -> sqr(z0) [0] a__dbl(0) -> 0 [0] a__dbl(s(terms(z0687))) -> s(s(a__dbl(a__terms(mark(z0687))))) [0] a__dbl(s(sqr(z0688))) -> s(s(a__dbl(a__sqr(mark(z0688))))) [0] a__dbl(s(add(z0689, z1257))) -> s(s(a__dbl(a__add(mark(z0689), mark(z1257))))) [0] a__dbl(s(dbl(z0690))) -> s(s(a__dbl(a__dbl(mark(z0690))))) [0] a__dbl(s(first(z0691, z1258))) -> s(s(a__dbl(a__first(mark(z0691), mark(z1258))))) [0] a__dbl(s(cons(z0692, z1259))) -> s(s(a__dbl(cons(mark(z0692), z1259)))) [0] a__dbl(s(recip(z0693))) -> s(s(a__dbl(recip(mark(z0693))))) [0] a__dbl(s(s(z0694))) -> s(s(a__dbl(s(mark(z0694))))) [0] a__dbl(s(0)) -> s(s(a__dbl(0))) [0] a__dbl(s(nil)) -> s(s(a__dbl(nil))) [0] a__dbl(s(z0)) -> s(s(a__dbl(null_mark))) [0] a__dbl(z0) -> dbl(z0) [0] a__add(0, z0) -> mark(z0) [0] a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) [0] a__add(z0, z1) -> add(z0, z1) [0] a__first(0, z0) -> nil [0] a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) [0] a__first(z0, z1) -> first(z0, z1) [0] mark(terms(terms(z0791))) -> a__terms(a__terms(mark(z0791))) [0] mark(terms(sqr(z0792))) -> a__terms(a__sqr(mark(z0792))) [0] mark(terms(add(z0793, z1296))) -> a__terms(a__add(mark(z0793), mark(z1296))) [0] mark(terms(dbl(z0794))) -> a__terms(a__dbl(mark(z0794))) [0] mark(terms(first(z0795, z1297))) -> a__terms(a__first(mark(z0795), mark(z1297))) [0] mark(terms(cons(z0796, z1298))) -> a__terms(cons(mark(z0796), z1298)) [0] mark(terms(recip(z0797))) -> a__terms(recip(mark(z0797))) [0] mark(terms(s(z0798))) -> a__terms(s(mark(z0798))) [0] mark(terms(0)) -> a__terms(0) [0] mark(terms(nil)) -> a__terms(nil) [0] mark(terms(z0)) -> a__terms(null_mark) [0] mark(sqr(terms(z0799))) -> a__sqr(a__terms(mark(z0799))) [0] mark(sqr(sqr(z0800))) -> a__sqr(a__sqr(mark(z0800))) [0] mark(sqr(add(z0801, z1299))) -> a__sqr(a__add(mark(z0801), mark(z1299))) [0] mark(sqr(dbl(z0802))) -> a__sqr(a__dbl(mark(z0802))) [0] mark(sqr(first(z0803, z1300))) -> a__sqr(a__first(mark(z0803), mark(z1300))) [0] mark(sqr(cons(z0804, z1301))) -> a__sqr(cons(mark(z0804), z1301)) [0] mark(sqr(recip(z0805))) -> a__sqr(recip(mark(z0805))) [0] mark(sqr(s(z0806))) -> a__sqr(s(mark(z0806))) [0] mark(sqr(0)) -> a__sqr(0) [0] mark(sqr(nil)) -> a__sqr(nil) [0] mark(sqr(z0)) -> a__sqr(null_mark) [0] mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) [0] mark(dbl(terms(z0903))) -> a__dbl(a__terms(mark(z0903))) [0] mark(dbl(sqr(z0904))) -> a__dbl(a__sqr(mark(z0904))) [0] mark(dbl(add(z0905, z1338))) -> a__dbl(a__add(mark(z0905), mark(z1338))) [0] mark(dbl(dbl(z0906))) -> a__dbl(a__dbl(mark(z0906))) [0] mark(dbl(first(z0907, z1339))) -> a__dbl(a__first(mark(z0907), mark(z1339))) [0] mark(dbl(cons(z0908, z1340))) -> a__dbl(cons(mark(z0908), z1340)) [0] mark(dbl(recip(z0909))) -> a__dbl(recip(mark(z0909))) [0] mark(dbl(s(z0910))) -> a__dbl(s(mark(z0910))) [0] mark(dbl(0)) -> a__dbl(0) [0] mark(dbl(nil)) -> a__dbl(nil) [0] mark(dbl(z0)) -> a__dbl(null_mark) [0] mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] mark(recip(z0)) -> recip(mark(z0)) [0] mark(s(z0)) -> s(mark(z0)) [0] mark(0) -> 0 [0] mark(nil) -> nil [0] a__terms(v0) -> null_a__terms [0] a__sqr(v0) -> null_a__sqr [0] a__dbl(v0) -> null_a__dbl [0] a__add(v0, v1) -> null_a__add [0] a__first(v0, v1) -> null_a__first [0] mark(v0) -> null_mark [0] The TRS has the following type information: A__TERMS :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> c c :: c3:c4 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c A__SQR :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> c3:c4 mark :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark MARK :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 s :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark c3 :: c9:c10:c11 -> c3:c4 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c3:c4 A__ADD :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> c9:c10:c11 a__sqr :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark a__dbl :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark c4 :: c9:c10:c11 -> c7 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c3:c4 A__DBL :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> c7 c7 :: c7 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c7 0 :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark c9 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c9:c10:c11 c10 :: c9:c10:c11 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c9:c10:c11 c11 :: c9:c10:c11 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c9:c10:c11 A__FIRST :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> c14 cons :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark c14 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c14 terms :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark c16 :: c -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 sqr :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark c17 :: c3:c4 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 add :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark c18 :: c9:c10:c11 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 c19 :: c9:c10:c11 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 dbl :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark c20 :: c7 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 first :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark c21 :: c14 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 c22 :: c14 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 c23 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 recip :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark c24 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 c25 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 a__terms :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark a__add :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark a__first :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark nil :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark null_a__terms :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark null_a__sqr :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark null_a__dbl :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark null_a__add :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark null_a__first :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark null_mark :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark const :: c const1 :: c3:c4 const2 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25 const3 :: c9:c10:c11 const4 :: c7 const5 :: c14 Rewrite Strategy: INNERMOST ---------------------------------------- (75) 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__terms => 0 null_a__sqr => 0 null_a__dbl => 0 null_a__add => 0 null_a__first => 0 null_mark => 0 const => 0 const1 => 0 const2 => 0 const3 => 0 const4 => 0 const5 => 0 ---------------------------------------- (76) Obligation: Complexity RNTS consisting of the following rules: A__ADD(z, z') -{ 1 }-> 1 + MARK(z0) :|: z0 >= 0, z = 0, z' = z0 A__ADD(z, z') -{ 1 }-> 1 + A__ADD(mark(z0), mark(z1)) + MARK(z0) :|: z1 >= 0, z = 1 + z0, z' = z1, z0 >= 0 A__ADD(z, z') -{ 1 }-> 1 + A__ADD(mark(z0), mark(z1)) + MARK(z1) :|: z1 >= 0, z = 1 + z0, z' = z1, z0 >= 0 A__DBL(z) -{ 1 }-> 1 + A__DBL(a__terms(mark(z055))) + MARK(1 + z055) :|: z = 1 + (1 + z055), z055 >= 0 A__DBL(z) -{ 1 }-> 1 + A__DBL(a__sqr(mark(z056))) + MARK(1 + z056) :|: z056 >= 0, z = 1 + (1 + z056) A__DBL(z) -{ 1 }-> 1 + A__DBL(a__first(mark(z059), mark(z121))) + MARK(1 + z059 + z121) :|: z121 >= 0, z = 1 + (1 + z059 + z121), z059 >= 0 A__DBL(z) -{ 1 }-> 1 + A__DBL(a__dbl(mark(z058))) + MARK(1 + z058) :|: z = 1 + (1 + z058), z058 >= 0 A__DBL(z) -{ 1 }-> 1 + A__DBL(a__add(mark(z057), mark(z120))) + MARK(1 + z057 + z120) :|: z120 >= 0, z = 1 + (1 + z057 + z120), z057 >= 0 A__DBL(z) -{ 1 }-> 1 + A__DBL(1) + MARK(1) :|: z = 1 + 1 A__DBL(z) -{ 1 }-> 1 + A__DBL(0) + MARK(z0) :|: z = 1 + z0, z0 >= 0 A__DBL(z) -{ 1 }-> 1 + A__DBL(0) + MARK(0) :|: z = 1 + 0 A__DBL(z) -{ 1 }-> 1 + A__DBL(1 + mark(z061)) + MARK(1 + z061) :|: z061 >= 0, z = 1 + (1 + z061) A__DBL(z) -{ 1 }-> 1 + A__DBL(1 + mark(z062)) + MARK(1 + z062) :|: z062 >= 0, z = 1 + (1 + z062) A__DBL(z) -{ 1 }-> 1 + A__DBL(1 + mark(z060) + z122) + MARK(1 + z060 + z122) :|: z = 1 + (1 + z060 + z122), z122 >= 0, z060 >= 0 A__FIRST(z, z') -{ 1 }-> 1 + MARK(z1) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 A__SQR(z) -{ 1 }-> 1 + A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))) + A__SQR(mark(z0)) + MARK(z0) :|: z = 1 + z0, z0 >= 0 A__SQR(z) -{ 1 }-> 1 + A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))) + A__DBL(mark(z0)) + MARK(z0) :|: z = 1 + z0, z0 >= 0 A__TERMS(z) -{ 1 }-> 1 + A__SQR(a__terms(mark(z0'))) + MARK(1 + z0') :|: z0' >= 0, z = 1 + z0' A__TERMS(z) -{ 1 }-> 1 + A__SQR(a__sqr(mark(z0''))) + MARK(1 + z0'') :|: z0'' >= 0, z = 1 + z0'' A__TERMS(z) -{ 1 }-> 1 + A__SQR(a__first(mark(z03), mark(z1''))) + MARK(1 + z03 + z1'') :|: z = 1 + z03 + z1'', z03 >= 0, z1'' >= 0 A__TERMS(z) -{ 1 }-> 1 + A__SQR(a__dbl(mark(z02))) + MARK(1 + z02) :|: z = 1 + z02, z02 >= 0 A__TERMS(z) -{ 1 }-> 1 + A__SQR(a__add(mark(z01), mark(z1'))) + MARK(1 + z01 + z1') :|: z01 >= 0, z1' >= 0, z = 1 + z01 + z1' A__TERMS(z) -{ 1 }-> 1 + A__SQR(1) + MARK(1) :|: z = 1 A__TERMS(z) -{ 1 }-> 1 + A__SQR(0) + MARK(z0) :|: z = z0, z0 >= 0 A__TERMS(z) -{ 1 }-> 1 + A__SQR(0) + MARK(0) :|: z = 0 A__TERMS(z) -{ 1 }-> 1 + A__SQR(1 + mark(z05)) + MARK(1 + z05) :|: z05 >= 0, z = 1 + z05 A__TERMS(z) -{ 1 }-> 1 + A__SQR(1 + mark(z06)) + MARK(1 + z06) :|: z06 >= 0, z = 1 + z06 A__TERMS(z) -{ 1 }-> 1 + A__SQR(1 + mark(z04) + z11) + MARK(1 + z04 + z11) :|: z04 >= 0, z = 1 + z04 + z11, z11 >= 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__TERMS(a__terms(mark(z0255))) + MARK(1 + z0255) :|: z0255 >= 0, z = 1 + (1 + z0255) MARK(z) -{ 1 }-> 1 + A__TERMS(a__sqr(mark(z0256))) + MARK(1 + z0256) :|: z0256 >= 0, z = 1 + (1 + z0256) MARK(z) -{ 1 }-> 1 + A__TERMS(a__first(mark(z0259), mark(z196))) + MARK(1 + z0259 + z196) :|: z0259 >= 0, z = 1 + (1 + z0259 + z196), z196 >= 0 MARK(z) -{ 1 }-> 1 + A__TERMS(a__dbl(mark(z0258))) + MARK(1 + z0258) :|: z = 1 + (1 + z0258), z0258 >= 0 MARK(z) -{ 1 }-> 1 + A__TERMS(a__add(mark(z0257), mark(z195))) + MARK(1 + z0257 + z195) :|: z0257 >= 0, z195 >= 0, z = 1 + (1 + z0257 + z195) MARK(z) -{ 1 }-> 1 + A__TERMS(1) + MARK(1) :|: z = 1 + 1 MARK(z) -{ 1 }-> 1 + A__TERMS(0) + MARK(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__TERMS(0) + MARK(0) :|: z = 1 + 0 MARK(z) -{ 1 }-> 1 + A__TERMS(1 + mark(z0261)) + MARK(1 + z0261) :|: z0261 >= 0, z = 1 + (1 + z0261) MARK(z) -{ 1 }-> 1 + A__TERMS(1 + mark(z0262)) + MARK(1 + z0262) :|: z0262 >= 0, z = 1 + (1 + z0262) MARK(z) -{ 1 }-> 1 + A__TERMS(1 + mark(z0260) + z197) + MARK(1 + z0260 + z197) :|: z197 >= 0, z = 1 + (1 + z0260 + z197), z0260 >= 0 MARK(z) -{ 1 }-> 1 + A__SQR(a__terms(mark(z0263))) + MARK(1 + z0263) :|: z0263 >= 0, z = 1 + (1 + z0263) MARK(z) -{ 1 }-> 1 + A__SQR(a__sqr(mark(z0264))) + MARK(1 + z0264) :|: z = 1 + (1 + z0264), z0264 >= 0 MARK(z) -{ 1 }-> 1 + A__SQR(a__first(mark(z0267), mark(z199))) + MARK(1 + z0267 + z199) :|: z0267 >= 0, z199 >= 0, z = 1 + (1 + z0267 + z199) MARK(z) -{ 1 }-> 1 + A__SQR(a__dbl(mark(z0266))) + MARK(1 + z0266) :|: z0266 >= 0, z = 1 + (1 + z0266) MARK(z) -{ 1 }-> 1 + A__SQR(a__add(mark(z0265), mark(z198))) + MARK(1 + z0265 + z198) :|: z198 >= 0, z = 1 + (1 + z0265 + z198), z0265 >= 0 MARK(z) -{ 1 }-> 1 + A__SQR(1) + MARK(1) :|: z = 1 + 1 MARK(z) -{ 1 }-> 1 + A__SQR(0) + MARK(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__SQR(0) + MARK(0) :|: z = 1 + 0 MARK(z) -{ 1 }-> 1 + A__SQR(1 + mark(z0269)) + MARK(1 + z0269) :|: z = 1 + (1 + z0269), z0269 >= 0 MARK(z) -{ 1 }-> 1 + A__SQR(1 + mark(z0270)) + MARK(1 + z0270) :|: z0270 >= 0, z = 1 + (1 + z0270) MARK(z) -{ 1 }-> 1 + A__SQR(1 + mark(z0268) + z1100) + MARK(1 + z0268 + z1100) :|: z0268 >= 0, z = 1 + (1 + z0268 + z1100), z1100 >= 0 MARK(z) -{ 1 }-> 1 + A__FIRST(mark(z0), mark(z1)) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__FIRST(mark(z0), mark(z1)) + MARK(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__DBL(a__terms(mark(z0463))) + MARK(1 + z0463) :|: z0463 >= 0, z = 1 + (1 + z0463) MARK(z) -{ 1 }-> 1 + A__DBL(a__sqr(mark(z0464))) + MARK(1 + z0464) :|: z0464 >= 0, z = 1 + (1 + z0464) MARK(z) -{ 1 }-> 1 + A__DBL(a__first(mark(z0467), mark(z1174))) + MARK(1 + z0467 + z1174) :|: z = 1 + (1 + z0467 + z1174), z0467 >= 0, z1174 >= 0 MARK(z) -{ 1 }-> 1 + A__DBL(a__dbl(mark(z0466))) + MARK(1 + z0466) :|: z = 1 + (1 + z0466), z0466 >= 0 MARK(z) -{ 1 }-> 1 + A__DBL(a__add(mark(z0465), mark(z1173))) + MARK(1 + z0465 + z1173) :|: z = 1 + (1 + z0465 + z1173), z1173 >= 0, z0465 >= 0 MARK(z) -{ 1 }-> 1 + A__DBL(1) + MARK(1) :|: z = 1 + 1 MARK(z) -{ 1 }-> 1 + A__DBL(0) + MARK(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__DBL(0) + MARK(0) :|: z = 1 + 0 MARK(z) -{ 1 }-> 1 + A__DBL(1 + mark(z0469)) + MARK(1 + z0469) :|: z = 1 + (1 + z0469), z0469 >= 0 MARK(z) -{ 1 }-> 1 + A__DBL(1 + mark(z0470)) + MARK(1 + z0470) :|: z0470 >= 0, z = 1 + (1 + z0470) MARK(z) -{ 1 }-> 1 + A__DBL(1 + mark(z0468) + z1175) + MARK(1 + z0468 + z1175) :|: z0468 >= 0, z1175 >= 0, z = 1 + (1 + z0468 + z1175) 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 + a__add(mark(z0), mark(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__dbl(z) -{ 0 }-> 0 :|: z = 0 a__dbl(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__dbl(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__dbl(z) -{ 0 }-> 1 + (1 + a__dbl(a__terms(mark(z0687)))) :|: z0687 >= 0, z = 1 + (1 + z0687) a__dbl(z) -{ 0 }-> 1 + (1 + a__dbl(a__sqr(mark(z0688)))) :|: z = 1 + (1 + z0688), z0688 >= 0 a__dbl(z) -{ 0 }-> 1 + (1 + a__dbl(a__first(mark(z0691), mark(z1258)))) :|: z1258 >= 0, z0691 >= 0, z = 1 + (1 + z0691 + z1258) a__dbl(z) -{ 0 }-> 1 + (1 + a__dbl(a__dbl(mark(z0690)))) :|: z = 1 + (1 + z0690), z0690 >= 0 a__dbl(z) -{ 0 }-> 1 + (1 + a__dbl(a__add(mark(z0689), mark(z1257)))) :|: z = 1 + (1 + z0689 + z1257), z0689 >= 0, z1257 >= 0 a__dbl(z) -{ 0 }-> 1 + (1 + a__dbl(1)) :|: z = 1 + 1 a__dbl(z) -{ 0 }-> 1 + (1 + a__dbl(0)) :|: z = 1 + 0 a__dbl(z) -{ 0 }-> 1 + (1 + a__dbl(0)) :|: z = 1 + z0, z0 >= 0 a__dbl(z) -{ 0 }-> 1 + (1 + a__dbl(1 + mark(z0693))) :|: z = 1 + (1 + z0693), z0693 >= 0 a__dbl(z) -{ 0 }-> 1 + (1 + a__dbl(1 + mark(z0694))) :|: z = 1 + (1 + z0694), z0694 >= 0 a__dbl(z) -{ 0 }-> 1 + (1 + a__dbl(1 + mark(z0692) + z1259)) :|: z0692 >= 0, z1259 >= 0, z = 1 + (1 + z0692 + z1259) a__first(z, z') -{ 0 }-> 1 :|: z0 >= 0, z = 0, z' = z0 a__first(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__first(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 a__first(z, z') -{ 0 }-> 1 + mark(z1) + (1 + z0 + z2) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 a__sqr(z) -{ 0 }-> 0 :|: z = 0 a__sqr(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__sqr(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__sqr(z) -{ 0 }-> 1 + a__add(a__sqr(mark(z0)), a__dbl(mark(z0))) :|: z = 1 + z0, z0 >= 0 a__terms(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__terms(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__terms(z) -{ 0 }-> 1 + (1 + a__sqr(a__terms(mark(z0663)))) + (1 + (1 + (1 + z0663))) :|: z0663 >= 0, z = 1 + z0663 a__terms(z) -{ 0 }-> 1 + (1 + a__sqr(a__sqr(mark(z0664)))) + (1 + (1 + (1 + z0664))) :|: z = 1 + z0664, z0664 >= 0 a__terms(z) -{ 0 }-> 1 + (1 + a__sqr(a__first(mark(z0667), mark(z1249)))) + (1 + (1 + (1 + z0667 + z1249))) :|: z = 1 + z0667 + z1249, z1249 >= 0, z0667 >= 0 a__terms(z) -{ 0 }-> 1 + (1 + a__sqr(a__dbl(mark(z0666)))) + (1 + (1 + (1 + z0666))) :|: z0666 >= 0, z = 1 + z0666 a__terms(z) -{ 0 }-> 1 + (1 + a__sqr(a__add(mark(z0665), mark(z1248)))) + (1 + (1 + (1 + z0665 + z1248))) :|: z0665 >= 0, z1248 >= 0, z = 1 + z0665 + z1248 a__terms(z) -{ 0 }-> 1 + (1 + a__sqr(1)) + (1 + (1 + 1)) :|: z = 1 a__terms(z) -{ 0 }-> 1 + (1 + a__sqr(0)) + (1 + (1 + z0)) :|: z = z0, z0 >= 0 a__terms(z) -{ 0 }-> 1 + (1 + a__sqr(0)) + (1 + (1 + 0)) :|: z = 0 a__terms(z) -{ 0 }-> 1 + (1 + a__sqr(1 + mark(z0669))) + (1 + (1 + (1 + z0669))) :|: z0669 >= 0, z = 1 + z0669 a__terms(z) -{ 0 }-> 1 + (1 + a__sqr(1 + mark(z0670))) + (1 + (1 + (1 + z0670))) :|: z = 1 + z0670, z0670 >= 0 a__terms(z) -{ 0 }-> 1 + (1 + a__sqr(1 + mark(z0668) + z1250)) + (1 + (1 + (1 + z0668 + z1250))) :|: z1250 >= 0, z = 1 + z0668 + z1250, z0668 >= 0 mark(z) -{ 0 }-> a__terms(a__terms(mark(z0791))) :|: z0791 >= 0, z = 1 + (1 + z0791) mark(z) -{ 0 }-> a__terms(a__sqr(mark(z0792))) :|: z = 1 + (1 + z0792), z0792 >= 0 mark(z) -{ 0 }-> a__terms(a__first(mark(z0795), mark(z1297))) :|: z = 1 + (1 + z0795 + z1297), z0795 >= 0, z1297 >= 0 mark(z) -{ 0 }-> a__terms(a__dbl(mark(z0794))) :|: z = 1 + (1 + z0794), z0794 >= 0 mark(z) -{ 0 }-> a__terms(a__add(mark(z0793), mark(z1296))) :|: z1296 >= 0, z0793 >= 0, z = 1 + (1 + z0793 + z1296) mark(z) -{ 0 }-> a__terms(1) :|: z = 1 + 1 mark(z) -{ 0 }-> a__terms(0) :|: z = 1 + 0 mark(z) -{ 0 }-> a__terms(0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__terms(1 + mark(z0797)) :|: z = 1 + (1 + z0797), z0797 >= 0 mark(z) -{ 0 }-> a__terms(1 + mark(z0798)) :|: z = 1 + (1 + z0798), z0798 >= 0 mark(z) -{ 0 }-> a__terms(1 + mark(z0796) + z1298) :|: z = 1 + (1 + z0796 + z1298), z1298 >= 0, z0796 >= 0 mark(z) -{ 0 }-> a__sqr(a__terms(mark(z0799))) :|: z0799 >= 0, z = 1 + (1 + z0799) mark(z) -{ 0 }-> a__sqr(a__sqr(mark(z0800))) :|: z = 1 + (1 + z0800), z0800 >= 0 mark(z) -{ 0 }-> a__sqr(a__first(mark(z0803), mark(z1300))) :|: z1300 >= 0, z = 1 + (1 + z0803 + z1300), z0803 >= 0 mark(z) -{ 0 }-> a__sqr(a__dbl(mark(z0802))) :|: z0802 >= 0, z = 1 + (1 + z0802) mark(z) -{ 0 }-> a__sqr(a__add(mark(z0801), mark(z1299))) :|: z0801 >= 0, z1299 >= 0, z = 1 + (1 + z0801 + z1299) mark(z) -{ 0 }-> a__sqr(1) :|: z = 1 + 1 mark(z) -{ 0 }-> a__sqr(0) :|: z = 1 + 0 mark(z) -{ 0 }-> a__sqr(0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__sqr(1 + mark(z0805)) :|: z0805 >= 0, z = 1 + (1 + z0805) mark(z) -{ 0 }-> a__sqr(1 + mark(z0806)) :|: z = 1 + (1 + z0806), z0806 >= 0 mark(z) -{ 0 }-> a__sqr(1 + mark(z0804) + z1301) :|: z1301 >= 0, z = 1 + (1 + z0804 + z1301), z0804 >= 0 mark(z) -{ 0 }-> a__first(mark(z0), mark(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__dbl(a__terms(mark(z0903))) :|: z0903 >= 0, z = 1 + (1 + z0903) mark(z) -{ 0 }-> a__dbl(a__sqr(mark(z0904))) :|: z = 1 + (1 + z0904), z0904 >= 0 mark(z) -{ 0 }-> a__dbl(a__first(mark(z0907), mark(z1339))) :|: z = 1 + (1 + z0907 + z1339), z0907 >= 0, z1339 >= 0 mark(z) -{ 0 }-> a__dbl(a__dbl(mark(z0906))) :|: z = 1 + (1 + z0906), z0906 >= 0 mark(z) -{ 0 }-> a__dbl(a__add(mark(z0905), mark(z1338))) :|: z = 1 + (1 + z0905 + z1338), z1338 >= 0, z0905 >= 0 mark(z) -{ 0 }-> a__dbl(1) :|: z = 1 + 1 mark(z) -{ 0 }-> a__dbl(0) :|: z = 1 + 0 mark(z) -{ 0 }-> a__dbl(0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__dbl(1 + mark(z0909)) :|: z0909 >= 0, z = 1 + (1 + z0909) mark(z) -{ 0 }-> a__dbl(1 + mark(z0910)) :|: z = 1 + (1 + z0910), z0910 >= 0 mark(z) -{ 0 }-> a__dbl(1 + mark(z0908) + z1340) :|: z0908 >= 0, z1340 >= 0, z = 1 + (1 + z0908 + z1340) 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 + mark(z0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> 1 + mark(z0) + z1 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ---------------------------------------- (77) SimplificationProof (BOTH BOUNDS(ID, ID)) Simplified the RNTS by moving equalities from the constraints into the right-hand sides. ---------------------------------------- (78) Obligation: Complexity RNTS consisting of the following rules: A__ADD(z, z') -{ 1 }-> 1 + MARK(z') :|: z' >= 0, z = 0 A__ADD(z, z') -{ 1 }-> 1 + A__ADD(mark(z - 1), mark(z')) + MARK(z') :|: z' >= 0, z - 1 >= 0 A__ADD(z, z') -{ 1 }-> 1 + A__ADD(mark(z - 1), mark(z')) + MARK(z - 1) :|: z' >= 0, z - 1 >= 0 A__DBL(z) -{ 1 }-> 1 + A__DBL(a__terms(mark(z - 2))) + MARK(1 + (z - 2)) :|: z - 2 >= 0 A__DBL(z) -{ 1 }-> 1 + A__DBL(a__sqr(mark(z - 2))) + MARK(1 + (z - 2)) :|: z - 2 >= 0 A__DBL(z) -{ 1 }-> 1 + A__DBL(a__first(mark(z059), mark(z121))) + MARK(1 + z059 + z121) :|: z121 >= 0, z = 1 + (1 + z059 + z121), z059 >= 0 A__DBL(z) -{ 1 }-> 1 + A__DBL(a__dbl(mark(z - 2))) + MARK(1 + (z - 2)) :|: z - 2 >= 0 A__DBL(z) -{ 1 }-> 1 + A__DBL(a__add(mark(z057), mark(z120))) + MARK(1 + z057 + z120) :|: z120 >= 0, z = 1 + (1 + z057 + z120), z057 >= 0 A__DBL(z) -{ 1 }-> 1 + A__DBL(1) + MARK(1) :|: z = 1 + 1 A__DBL(z) -{ 1 }-> 1 + A__DBL(0) + MARK(0) :|: z = 1 + 0 A__DBL(z) -{ 1 }-> 1 + A__DBL(0) + MARK(z - 1) :|: z - 1 >= 0 A__DBL(z) -{ 1 }-> 1 + A__DBL(1 + mark(z - 2)) + MARK(1 + (z - 2)) :|: z - 2 >= 0 A__DBL(z) -{ 1 }-> 1 + A__DBL(1 + mark(z060) + z122) + MARK(1 + z060 + z122) :|: z = 1 + (1 + z060 + z122), z122 >= 0, z060 >= 0 A__FIRST(z, z') -{ 1 }-> 1 + MARK(z1) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 A__SQR(z) -{ 1 }-> 1 + A__ADD(a__sqr(mark(z - 1)), a__dbl(mark(z - 1))) + A__SQR(mark(z - 1)) + MARK(z - 1) :|: z - 1 >= 0 A__SQR(z) -{ 1 }-> 1 + A__ADD(a__sqr(mark(z - 1)), a__dbl(mark(z - 1))) + A__DBL(mark(z - 1)) + MARK(z - 1) :|: z - 1 >= 0 A__TERMS(z) -{ 1 }-> 1 + A__SQR(a__terms(mark(z - 1))) + MARK(1 + (z - 1)) :|: z - 1 >= 0 A__TERMS(z) -{ 1 }-> 1 + A__SQR(a__sqr(mark(z - 1))) + MARK(1 + (z - 1)) :|: z - 1 >= 0 A__TERMS(z) -{ 1 }-> 1 + A__SQR(a__first(mark(z03), mark(z1''))) + MARK(1 + z03 + z1'') :|: z = 1 + z03 + z1'', z03 >= 0, z1'' >= 0 A__TERMS(z) -{ 1 }-> 1 + A__SQR(a__dbl(mark(z - 1))) + MARK(1 + (z - 1)) :|: z - 1 >= 0 A__TERMS(z) -{ 1 }-> 1 + A__SQR(a__add(mark(z01), mark(z1'))) + MARK(1 + z01 + z1') :|: z01 >= 0, z1' >= 0, z = 1 + z01 + z1' A__TERMS(z) -{ 1 }-> 1 + A__SQR(1) + MARK(1) :|: z = 1 A__TERMS(z) -{ 1 }-> 1 + A__SQR(0) + MARK(z) :|: z >= 0 A__TERMS(z) -{ 1 }-> 1 + A__SQR(0) + MARK(0) :|: z = 0 A__TERMS(z) -{ 1 }-> 1 + A__SQR(1 + mark(z - 1)) + MARK(1 + (z - 1)) :|: z - 1 >= 0 A__TERMS(z) -{ 1 }-> 1 + A__SQR(1 + mark(z04) + z11) + MARK(1 + z04 + z11) :|: z04 >= 0, z = 1 + z04 + z11, z11 >= 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__TERMS(a__terms(mark(z - 2))) + MARK(1 + (z - 2)) :|: z - 2 >= 0 MARK(z) -{ 1 }-> 1 + A__TERMS(a__sqr(mark(z - 2))) + MARK(1 + (z - 2)) :|: z - 2 >= 0 MARK(z) -{ 1 }-> 1 + A__TERMS(a__first(mark(z0259), mark(z196))) + MARK(1 + z0259 + z196) :|: z0259 >= 0, z = 1 + (1 + z0259 + z196), z196 >= 0 MARK(z) -{ 1 }-> 1 + A__TERMS(a__dbl(mark(z - 2))) + MARK(1 + (z - 2)) :|: z - 2 >= 0 MARK(z) -{ 1 }-> 1 + A__TERMS(a__add(mark(z0257), mark(z195))) + MARK(1 + z0257 + z195) :|: z0257 >= 0, z195 >= 0, z = 1 + (1 + z0257 + z195) MARK(z) -{ 1 }-> 1 + A__TERMS(1) + MARK(1) :|: z = 1 + 1 MARK(z) -{ 1 }-> 1 + A__TERMS(0) + MARK(0) :|: z = 1 + 0 MARK(z) -{ 1 }-> 1 + A__TERMS(0) + MARK(z - 1) :|: z - 1 >= 0 MARK(z) -{ 1 }-> 1 + A__TERMS(1 + mark(z - 2)) + MARK(1 + (z - 2)) :|: z - 2 >= 0 MARK(z) -{ 1 }-> 1 + A__TERMS(1 + mark(z0260) + z197) + MARK(1 + z0260 + z197) :|: z197 >= 0, z = 1 + (1 + z0260 + z197), z0260 >= 0 MARK(z) -{ 1 }-> 1 + A__SQR(a__terms(mark(z - 2))) + MARK(1 + (z - 2)) :|: z - 2 >= 0 MARK(z) -{ 1 }-> 1 + A__SQR(a__sqr(mark(z - 2))) + MARK(1 + (z - 2)) :|: z - 2 >= 0 MARK(z) -{ 1 }-> 1 + A__SQR(a__first(mark(z0267), mark(z199))) + MARK(1 + z0267 + z199) :|: z0267 >= 0, z199 >= 0, z = 1 + (1 + z0267 + z199) MARK(z) -{ 1 }-> 1 + A__SQR(a__dbl(mark(z - 2))) + MARK(1 + (z - 2)) :|: z - 2 >= 0 MARK(z) -{ 1 }-> 1 + A__SQR(a__add(mark(z0265), mark(z198))) + MARK(1 + z0265 + z198) :|: z198 >= 0, z = 1 + (1 + z0265 + z198), z0265 >= 0 MARK(z) -{ 1 }-> 1 + A__SQR(1) + MARK(1) :|: z = 1 + 1 MARK(z) -{ 1 }-> 1 + A__SQR(0) + MARK(0) :|: z = 1 + 0 MARK(z) -{ 1 }-> 1 + A__SQR(0) + MARK(z - 1) :|: z - 1 >= 0 MARK(z) -{ 1 }-> 1 + A__SQR(1 + mark(z - 2)) + MARK(1 + (z - 2)) :|: z - 2 >= 0 MARK(z) -{ 1 }-> 1 + A__SQR(1 + mark(z0268) + z1100) + MARK(1 + z0268 + z1100) :|: z0268 >= 0, z = 1 + (1 + z0268 + z1100), z1100 >= 0 MARK(z) -{ 1 }-> 1 + A__FIRST(mark(z0), mark(z1)) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__FIRST(mark(z0), mark(z1)) + MARK(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__DBL(a__terms(mark(z - 2))) + MARK(1 + (z - 2)) :|: z - 2 >= 0 MARK(z) -{ 1 }-> 1 + A__DBL(a__sqr(mark(z - 2))) + MARK(1 + (z - 2)) :|: z - 2 >= 0 MARK(z) -{ 1 }-> 1 + A__DBL(a__first(mark(z0467), mark(z1174))) + MARK(1 + z0467 + z1174) :|: z = 1 + (1 + z0467 + z1174), z0467 >= 0, z1174 >= 0 MARK(z) -{ 1 }-> 1 + A__DBL(a__dbl(mark(z - 2))) + MARK(1 + (z - 2)) :|: z - 2 >= 0 MARK(z) -{ 1 }-> 1 + A__DBL(a__add(mark(z0465), mark(z1173))) + MARK(1 + z0465 + z1173) :|: z = 1 + (1 + z0465 + z1173), z1173 >= 0, z0465 >= 0 MARK(z) -{ 1 }-> 1 + A__DBL(1) + MARK(1) :|: z = 1 + 1 MARK(z) -{ 1 }-> 1 + A__DBL(0) + MARK(0) :|: z = 1 + 0 MARK(z) -{ 1 }-> 1 + A__DBL(0) + MARK(z - 1) :|: z - 1 >= 0 MARK(z) -{ 1 }-> 1 + A__DBL(1 + mark(z - 2)) + MARK(1 + (z - 2)) :|: z - 2 >= 0 MARK(z) -{ 1 }-> 1 + A__DBL(1 + mark(z0468) + z1175) + MARK(1 + z0468 + z1175) :|: z0468 >= 0, z1175 >= 0, z = 1 + (1 + z0468 + z1175) 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 + a__add(mark(z - 1), mark(z')) :|: z' >= 0, z - 1 >= 0 a__add(z, z') -{ 0 }-> 1 + z + z' :|: z' >= 0, z >= 0 a__dbl(z) -{ 0 }-> 0 :|: z = 0 a__dbl(z) -{ 0 }-> 0 :|: z >= 0 a__dbl(z) -{ 0 }-> 1 + z :|: z >= 0 a__dbl(z) -{ 0 }-> 1 + (1 + a__dbl(a__terms(mark(z - 2)))) :|: z - 2 >= 0 a__dbl(z) -{ 0 }-> 1 + (1 + a__dbl(a__sqr(mark(z - 2)))) :|: z - 2 >= 0 a__dbl(z) -{ 0 }-> 1 + (1 + a__dbl(a__first(mark(z0691), mark(z1258)))) :|: z1258 >= 0, z0691 >= 0, z = 1 + (1 + z0691 + z1258) a__dbl(z) -{ 0 }-> 1 + (1 + a__dbl(a__dbl(mark(z - 2)))) :|: z - 2 >= 0 a__dbl(z) -{ 0 }-> 1 + (1 + a__dbl(a__add(mark(z0689), mark(z1257)))) :|: z = 1 + (1 + z0689 + z1257), z0689 >= 0, z1257 >= 0 a__dbl(z) -{ 0 }-> 1 + (1 + a__dbl(1)) :|: z = 1 + 1 a__dbl(z) -{ 0 }-> 1 + (1 + a__dbl(0)) :|: z = 1 + 0 a__dbl(z) -{ 0 }-> 1 + (1 + a__dbl(0)) :|: z - 1 >= 0 a__dbl(z) -{ 0 }-> 1 + (1 + a__dbl(1 + mark(z - 2))) :|: z - 2 >= 0 a__dbl(z) -{ 0 }-> 1 + (1 + a__dbl(1 + mark(z0692) + z1259)) :|: z0692 >= 0, z1259 >= 0, z = 1 + (1 + z0692 + z1259) a__first(z, z') -{ 0 }-> 1 :|: z' >= 0, z = 0 a__first(z, z') -{ 0 }-> 0 :|: z >= 0, z' >= 0 a__first(z, z') -{ 0 }-> 1 + z + z' :|: z' >= 0, z >= 0 a__first(z, z') -{ 0 }-> 1 + mark(z1) + (1 + (z - 1) + z2) :|: z1 >= 0, z' = 1 + z1 + z2, z - 1 >= 0, z2 >= 0 a__sqr(z) -{ 0 }-> 0 :|: z = 0 a__sqr(z) -{ 0 }-> 0 :|: z >= 0 a__sqr(z) -{ 0 }-> 1 + z :|: z >= 0 a__sqr(z) -{ 0 }-> 1 + a__add(a__sqr(mark(z - 1)), a__dbl(mark(z - 1))) :|: z - 1 >= 0 a__terms(z) -{ 0 }-> 0 :|: z >= 0 a__terms(z) -{ 0 }-> 1 + z :|: z >= 0 a__terms(z) -{ 0 }-> 1 + (1 + a__sqr(a__terms(mark(z - 1)))) + (1 + (1 + (1 + (z - 1)))) :|: z - 1 >= 0 a__terms(z) -{ 0 }-> 1 + (1 + a__sqr(a__sqr(mark(z - 1)))) + (1 + (1 + (1 + (z - 1)))) :|: z - 1 >= 0 a__terms(z) -{ 0 }-> 1 + (1 + a__sqr(a__first(mark(z0667), mark(z1249)))) + (1 + (1 + (1 + z0667 + z1249))) :|: z = 1 + z0667 + z1249, z1249 >= 0, z0667 >= 0 a__terms(z) -{ 0 }-> 1 + (1 + a__sqr(a__dbl(mark(z - 1)))) + (1 + (1 + (1 + (z - 1)))) :|: z - 1 >= 0 a__terms(z) -{ 0 }-> 1 + (1 + a__sqr(a__add(mark(z0665), mark(z1248)))) + (1 + (1 + (1 + z0665 + z1248))) :|: z0665 >= 0, z1248 >= 0, z = 1 + z0665 + z1248 a__terms(z) -{ 0 }-> 1 + (1 + a__sqr(1)) + (1 + (1 + 1)) :|: z = 1 a__terms(z) -{ 0 }-> 1 + (1 + a__sqr(0)) + (1 + (1 + z)) :|: z >= 0 a__terms(z) -{ 0 }-> 1 + (1 + a__sqr(0)) + (1 + (1 + 0)) :|: z = 0 a__terms(z) -{ 0 }-> 1 + (1 + a__sqr(1 + mark(z - 1))) + (1 + (1 + (1 + (z - 1)))) :|: z - 1 >= 0 a__terms(z) -{ 0 }-> 1 + (1 + a__sqr(1 + mark(z0668) + z1250)) + (1 + (1 + (1 + z0668 + z1250))) :|: z1250 >= 0, z = 1 + z0668 + z1250, z0668 >= 0 mark(z) -{ 0 }-> a__terms(a__terms(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__terms(a__sqr(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__terms(a__first(mark(z0795), mark(z1297))) :|: z = 1 + (1 + z0795 + z1297), z0795 >= 0, z1297 >= 0 mark(z) -{ 0 }-> a__terms(a__dbl(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__terms(a__add(mark(z0793), mark(z1296))) :|: z1296 >= 0, z0793 >= 0, z = 1 + (1 + z0793 + z1296) mark(z) -{ 0 }-> a__terms(1) :|: z = 1 + 1 mark(z) -{ 0 }-> a__terms(0) :|: z = 1 + 0 mark(z) -{ 0 }-> a__terms(0) :|: z - 1 >= 0 mark(z) -{ 0 }-> a__terms(1 + mark(z - 2)) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__terms(1 + mark(z0796) + z1298) :|: z = 1 + (1 + z0796 + z1298), z1298 >= 0, z0796 >= 0 mark(z) -{ 0 }-> a__sqr(a__terms(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__sqr(a__sqr(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__sqr(a__first(mark(z0803), mark(z1300))) :|: z1300 >= 0, z = 1 + (1 + z0803 + z1300), z0803 >= 0 mark(z) -{ 0 }-> a__sqr(a__dbl(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__sqr(a__add(mark(z0801), mark(z1299))) :|: z0801 >= 0, z1299 >= 0, z = 1 + (1 + z0801 + z1299) mark(z) -{ 0 }-> a__sqr(1) :|: z = 1 + 1 mark(z) -{ 0 }-> a__sqr(0) :|: z = 1 + 0 mark(z) -{ 0 }-> a__sqr(0) :|: z - 1 >= 0 mark(z) -{ 0 }-> a__sqr(1 + mark(z - 2)) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__sqr(1 + mark(z0804) + z1301) :|: z1301 >= 0, z = 1 + (1 + z0804 + z1301), z0804 >= 0 mark(z) -{ 0 }-> a__first(mark(z0), mark(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__dbl(a__terms(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__dbl(a__sqr(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__dbl(a__first(mark(z0907), mark(z1339))) :|: z = 1 + (1 + z0907 + z1339), z0907 >= 0, z1339 >= 0 mark(z) -{ 0 }-> a__dbl(a__dbl(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__dbl(a__add(mark(z0905), mark(z1338))) :|: z = 1 + (1 + z0905 + z1338), z1338 >= 0, z0905 >= 0 mark(z) -{ 0 }-> a__dbl(1) :|: z = 1 + 1 mark(z) -{ 0 }-> a__dbl(0) :|: z = 1 + 0 mark(z) -{ 0 }-> a__dbl(0) :|: z - 1 >= 0 mark(z) -{ 0 }-> a__dbl(1 + mark(z - 2)) :|: z - 2 >= 0 mark(z) -{ 0 }-> a__dbl(1 + mark(z0908) + z1340) :|: z0908 >= 0, z1340 >= 0, z = 1 + (1 + z0908 + z1340) 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 }-> 1 + mark(z - 1) :|: z - 1 >= 0 mark(z) -{ 0 }-> 1 + mark(z0) + z1 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 ---------------------------------------- (79) 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__terms(v0) -> null_a__terms [0] a__sqr(v0) -> null_a__sqr [0] a__dbl(v0) -> null_a__dbl [0] a__add(v0, v1) -> null_a__add [0] a__first(v0, v1) -> null_a__first [0] mark(v0) -> null_mark [0] A__SQR(v0) -> null_A__SQR [0] A__DBL(v0) -> null_A__DBL [0] A__ADD(v0, v1) -> null_A__ADD [0] A__FIRST(v0, v1) -> null_A__FIRST [0] MARK(v0) -> null_MARK [0] And the following fresh constants: null_a__terms, null_a__sqr, null_a__dbl, null_a__add, null_a__first, null_mark, null_A__SQR, null_A__DBL, null_A__ADD, null_A__FIRST, null_MARK, const ---------------------------------------- (80) 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__TERMS(z0) -> c(A__SQR(mark(z0)), MARK(z0)) [1] A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) [1] A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) [1] A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) [1] A__ADD(0, z0) -> c9(MARK(z0)) [1] A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) [1] A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) [1] A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) [1] MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) [1] MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) [1] MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) [1] MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) [1] MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) [1] MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) [1] MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) [1] MARK(cons(z0, z1)) -> c23(MARK(z0)) [1] MARK(recip(z0)) -> c24(MARK(z0)) [1] MARK(s(z0)) -> c25(MARK(z0)) [1] a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) [0] a__terms(z0) -> terms(z0) [0] a__sqr(0) -> 0 [0] a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) [0] a__sqr(z0) -> sqr(z0) [0] a__dbl(0) -> 0 [0] a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) [0] a__dbl(z0) -> dbl(z0) [0] a__add(0, z0) -> mark(z0) [0] a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) [0] a__add(z0, z1) -> add(z0, z1) [0] a__first(0, z0) -> nil [0] a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) [0] a__first(z0, z1) -> first(z0, z1) [0] mark(terms(z0)) -> a__terms(mark(z0)) [0] mark(sqr(z0)) -> a__sqr(mark(z0)) [0] mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) [0] mark(dbl(z0)) -> a__dbl(mark(z0)) [0] mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) [0] mark(cons(z0, z1)) -> cons(mark(z0), z1) [0] mark(recip(z0)) -> recip(mark(z0)) [0] mark(s(z0)) -> s(mark(z0)) [0] mark(0) -> 0 [0] mark(nil) -> nil [0] a__terms(v0) -> null_a__terms [0] a__sqr(v0) -> null_a__sqr [0] a__dbl(v0) -> null_a__dbl [0] a__add(v0, v1) -> null_a__add [0] a__first(v0, v1) -> null_a__first [0] mark(v0) -> null_mark [0] A__SQR(v0) -> null_A__SQR [0] A__DBL(v0) -> null_A__DBL [0] A__ADD(v0, v1) -> null_A__ADD [0] A__FIRST(v0, v1) -> null_A__FIRST [0] MARK(v0) -> null_MARK [0] The TRS has the following type information: A__TERMS :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> c c :: c3:c4:null_A__SQR -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:null_MARK -> c A__SQR :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> c3:c4:null_A__SQR mark :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark MARK :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:null_MARK s :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark c3 :: c9:c10:c11:null_A__ADD -> c3:c4:null_A__SQR -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:null_MARK -> c3:c4:null_A__SQR A__ADD :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> c9:c10:c11:null_A__ADD a__sqr :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark a__dbl :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark c4 :: c9:c10:c11:null_A__ADD -> c7:null_A__DBL -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:null_MARK -> c3:c4:null_A__SQR A__DBL :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> c7:null_A__DBL c7 :: c7:null_A__DBL -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:null_MARK -> c7:null_A__DBL 0 :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark c9 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:null_MARK -> c9:c10:c11:null_A__ADD c10 :: c9:c10:c11:null_A__ADD -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:null_MARK -> c9:c10:c11:null_A__ADD c11 :: c9:c10:c11:null_A__ADD -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:null_MARK -> c9:c10:c11:null_A__ADD A__FIRST :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> c14:null_A__FIRST cons :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark c14 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:null_MARK -> c14:null_A__FIRST terms :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark c16 :: c -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:null_MARK -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:null_MARK sqr :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark c17 :: c3:c4:null_A__SQR -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:null_MARK -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:null_MARK add :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark c18 :: c9:c10:c11:null_A__ADD -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:null_MARK -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:null_MARK c19 :: c9:c10:c11:null_A__ADD -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:null_MARK -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:null_MARK dbl :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark c20 :: c7:null_A__DBL -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:null_MARK -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:null_MARK first :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark c21 :: c14:null_A__FIRST -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:null_MARK -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:null_MARK c22 :: c14:null_A__FIRST -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:null_MARK -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:null_MARK c23 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:null_MARK -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:null_MARK recip :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark c24 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:null_MARK -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:null_MARK c25 :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:null_MARK -> c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:null_MARK a__terms :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark a__add :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark a__first :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark -> s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark nil :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark null_a__terms :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark null_a__sqr :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark null_a__dbl :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark null_a__add :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark null_a__first :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark null_mark :: s:0:cons:terms:sqr:add:dbl:first:recip:nil:null_a__terms:null_a__sqr:null_a__dbl:null_a__add:null_a__first:null_mark null_A__SQR :: c3:c4:null_A__SQR null_A__DBL :: c7:null_A__DBL null_A__ADD :: c9:c10:c11:null_A__ADD null_A__FIRST :: c14:null_A__FIRST null_MARK :: c16:c17:c18:c19:c20:c21:c22:c23:c24:c25:null_MARK const :: c Rewrite Strategy: INNERMOST ---------------------------------------- (81) 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__terms => 0 null_a__sqr => 0 null_a__dbl => 0 null_a__add => 0 null_a__first => 0 null_mark => 0 null_A__SQR => 0 null_A__DBL => 0 null_A__ADD => 0 null_A__FIRST => 0 null_MARK => 0 const => 0 ---------------------------------------- (82) 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__ADD(z, z') -{ 1 }-> 1 + A__ADD(mark(z0), mark(z1)) + MARK(z0) :|: z1 >= 0, z = 1 + z0, z' = z1, z0 >= 0 A__ADD(z, z') -{ 1 }-> 1 + A__ADD(mark(z0), mark(z1)) + MARK(z1) :|: z1 >= 0, z = 1 + z0, z' = z1, z0 >= 0 A__DBL(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 A__DBL(z) -{ 1 }-> 1 + A__DBL(mark(z0)) + MARK(z0) :|: z = 1 + z0, z0 >= 0 A__FIRST(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 A__FIRST(z, z') -{ 1 }-> 1 + MARK(z1) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 A__SQR(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 A__SQR(z) -{ 1 }-> 1 + A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))) + A__SQR(mark(z0)) + MARK(z0) :|: z = 1 + z0, z0 >= 0 A__SQR(z) -{ 1 }-> 1 + A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))) + A__DBL(mark(z0)) + MARK(z0) :|: z = 1 + z0, z0 >= 0 A__TERMS(z) -{ 1 }-> 1 + A__SQR(mark(z0)) + MARK(z0) :|: z = z0, z0 >= 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__TERMS(mark(z0)) + MARK(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__SQR(mark(z0)) + MARK(z0) :|: z = 1 + z0, z0 >= 0 MARK(z) -{ 1 }-> 1 + A__FIRST(mark(z0), mark(z1)) + MARK(z0) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__FIRST(mark(z0), mark(z1)) + MARK(z1) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 MARK(z) -{ 1 }-> 1 + A__DBL(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 + a__add(mark(z0), mark(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__dbl(z) -{ 0 }-> 0 :|: z = 0 a__dbl(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__dbl(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__dbl(z) -{ 0 }-> 1 + (1 + a__dbl(mark(z0))) :|: z = 1 + z0, z0 >= 0 a__first(z, z') -{ 0 }-> 1 :|: z0 >= 0, z = 0, z' = z0 a__first(z, z') -{ 0 }-> 0 :|: v0 >= 0, v1 >= 0, z = v0, z' = v1 a__first(z, z') -{ 0 }-> 1 + z0 + z1 :|: z = z0, z1 >= 0, z' = z1, z0 >= 0 a__first(z, z') -{ 0 }-> 1 + mark(z1) + (1 + z0 + z2) :|: z1 >= 0, z' = 1 + z1 + z2, z = 1 + z0, z0 >= 0, z2 >= 0 a__sqr(z) -{ 0 }-> 0 :|: z = 0 a__sqr(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__sqr(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__sqr(z) -{ 0 }-> 1 + a__add(a__sqr(mark(z0)), a__dbl(mark(z0))) :|: z = 1 + z0, z0 >= 0 a__terms(z) -{ 0 }-> 0 :|: v0 >= 0, z = v0 a__terms(z) -{ 0 }-> 1 + z0 :|: z = z0, z0 >= 0 a__terms(z) -{ 0 }-> 1 + (1 + a__sqr(mark(z0))) + (1 + (1 + z0)) :|: z = z0, z0 >= 0 mark(z) -{ 0 }-> a__terms(mark(z0)) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__sqr(mark(z0)) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> a__first(mark(z0), mark(z1)) :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 mark(z) -{ 0 }-> a__dbl(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 + mark(z0) :|: z = 1 + z0, z0 >= 0 mark(z) -{ 0 }-> 1 + mark(z0) + z1 :|: z1 >= 0, z0 >= 0, z = 1 + z0 + z1 Only complete derivations are relevant for the runtime complexity. ---------------------------------------- (83) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__TERMS(z0) -> c(A__SQR(mark(z0)), MARK(z0)) by A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(cons(z0, z1)) -> c(A__SQR(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(A__SQR(recip(mark(z0))), MARK(recip(z0))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(0) -> c(A__SQR(0), MARK(0)) A__TERMS(nil) -> c(A__SQR(nil), MARK(nil)) ---------------------------------------- (84) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(cons(z0, z1)) -> c(A__SQR(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(A__SQR(recip(mark(z0))), MARK(recip(z0))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(0) -> c(A__SQR(0), MARK(0)) A__TERMS(nil) -> c(A__SQR(nil), MARK(nil)) S tuples: A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(cons(z0, z1)) -> c(A__SQR(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(A__SQR(recip(mark(z0))), MARK(recip(z0))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(0) -> c(A__SQR(0), MARK(0)) A__TERMS(nil) -> c(A__SQR(nil), MARK(nil)) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__SQR_1, A__DBL_1, A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1 Compound Symbols: c3_3, c4_3, c7_2, c9_1, c10_2, c11_2, c14_1, c16_2, c17_2, c18_2, c19_2, c20_2, c21_2, c22_2, c23_1, c24_1, c25_1, c_2 ---------------------------------------- (85) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: A__TERMS(0) -> c(A__SQR(0), MARK(0)) A__TERMS(nil) -> c(A__SQR(nil), MARK(nil)) ---------------------------------------- (86) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(cons(z0, z1)) -> c(A__SQR(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(A__SQR(recip(mark(z0))), MARK(recip(z0))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) S tuples: A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(cons(z0, z1)) -> c(A__SQR(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(A__SQR(recip(mark(z0))), MARK(recip(z0))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__SQR_1, A__DBL_1, A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1 Compound Symbols: c3_3, c4_3, c7_2, c9_1, c10_2, c11_2, c14_1, c16_2, c17_2, c18_2, c19_2, c20_2, c21_2, c22_2, c23_1, c24_1, c25_1, c_2 ---------------------------------------- (87) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (88) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) S tuples: A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__SQR_1, A__DBL_1, A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1 Compound Symbols: c3_3, c4_3, c7_2, c9_1, c10_2, c11_2, c14_1, c16_2, c17_2, c18_2, c19_2, c20_2, c21_2, c22_2, c23_1, c24_1, c25_1, c_2, c_1 ---------------------------------------- (89) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__SQR(s(z0)) -> c3(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__SQR(mark(z0)), MARK(z0)) by A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0)), MARK(0)) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil)), MARK(nil)) A__SQR(s(x0)) -> c3(A__ADD(sqr(mark(x0)), a__dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0)), MARK(0)) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil)), MARK(nil)) ---------------------------------------- (90) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0)), MARK(0)) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil)), MARK(nil)) A__SQR(s(x0)) -> c3(A__ADD(sqr(mark(x0)), a__dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0)), MARK(0)) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil)), MARK(nil)) S tuples: A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0)), MARK(0)) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil)), MARK(nil)) A__SQR(s(x0)) -> c3(A__ADD(sqr(mark(x0)), a__dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0)), MARK(0)) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil)), MARK(nil)) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__SQR_1, A__DBL_1, A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1 Compound Symbols: c4_3, c7_2, c9_1, c10_2, c11_2, c14_1, c16_2, c17_2, c18_2, c19_2, c20_2, c21_2, c22_2, c23_1, c24_1, c25_1, c_2, c_1, c3_3 ---------------------------------------- (91) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 5 trailing tuple parts ---------------------------------------- (92) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) S tuples: A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__SQR_1, A__DBL_1, A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1 Compound Symbols: c4_3, c7_2, c9_1, c10_2, c11_2, c14_1, c16_2, c17_2, c18_2, c19_2, c20_2, c21_2, c22_2, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2 ---------------------------------------- (93) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__SQR(s(z0)) -> c4(A__ADD(a__sqr(mark(z0)), a__dbl(mark(z0))), A__DBL(mark(z0)), MARK(z0)) by A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0)), MARK(0)) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil)), MARK(nil)) A__SQR(s(x0)) -> c4(A__ADD(sqr(mark(x0)), a__dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0)), MARK(0)) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil)), MARK(nil)) ---------------------------------------- (94) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0)), MARK(0)) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil)), MARK(nil)) A__SQR(s(x0)) -> c4(A__ADD(sqr(mark(x0)), a__dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0)), MARK(0)) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil)), MARK(nil)) S tuples: A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0)), MARK(0)) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil)), MARK(nil)) A__SQR(s(x0)) -> c4(A__ADD(sqr(mark(x0)), a__dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0)), MARK(0)) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil)), MARK(nil)) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__DBL_1, A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1 Compound Symbols: c7_2, c9_1, c10_2, c11_2, c14_1, c16_2, c17_2, c18_2, c19_2, c20_2, c21_2, c22_2, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3 ---------------------------------------- (95) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 5 trailing tuple parts ---------------------------------------- (96) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) S tuples: A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__DBL_1, A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1 Compound Symbols: c7_2, c9_1, c10_2, c11_2, c14_1, c16_2, c17_2, c18_2, c19_2, c20_2, c21_2, c22_2, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2 ---------------------------------------- (97) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__DBL(s(z0)) -> c7(A__DBL(mark(z0)), MARK(z0)) by A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(cons(z0, z1))) -> c7(A__DBL(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(A__DBL(recip(mark(z0))), MARK(recip(z0))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(0)) -> c7(A__DBL(0), MARK(0)) A__DBL(s(nil)) -> c7(A__DBL(nil), MARK(nil)) ---------------------------------------- (98) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(cons(z0, z1))) -> c7(A__DBL(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(A__DBL(recip(mark(z0))), MARK(recip(z0))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(0)) -> c7(A__DBL(0), MARK(0)) A__DBL(s(nil)) -> c7(A__DBL(nil), MARK(nil)) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(cons(z0, z1))) -> c7(A__DBL(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(A__DBL(recip(mark(z0))), MARK(recip(z0))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(0)) -> c7(A__DBL(0), MARK(0)) A__DBL(s(nil)) -> c7(A__DBL(nil), MARK(nil)) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c10_2, c11_2, c14_1, c16_2, c17_2, c18_2, c19_2, c20_2, c21_2, c22_2, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2 ---------------------------------------- (99) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: A__DBL(s(nil)) -> c7(A__DBL(nil), MARK(nil)) A__DBL(s(0)) -> c7(A__DBL(0), MARK(0)) ---------------------------------------- (100) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(cons(z0, z1))) -> c7(A__DBL(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(A__DBL(recip(mark(z0))), MARK(recip(z0))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(cons(z0, z1))) -> c7(A__DBL(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(A__DBL(recip(mark(z0))), MARK(recip(z0))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c10_2, c11_2, c14_1, c16_2, c17_2, c18_2, c19_2, c20_2, c21_2, c22_2, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2 ---------------------------------------- (101) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (102) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c10_2, c11_2, c14_1, c16_2, c17_2, c18_2, c19_2, c20_2, c21_2, c22_2, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1 ---------------------------------------- (103) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ADD(s(z0), z1) -> c10(A__ADD(mark(z0), mark(z1)), MARK(z0)) by A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(cons(z0, z1)), x1) -> c10(A__ADD(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(A__ADD(recip(mark(z0)), mark(x1)), MARK(recip(z0))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1)), MARK(0)) A__ADD(s(nil), x1) -> c10(A__ADD(nil, mark(x1)), MARK(nil)) ---------------------------------------- (104) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(cons(z0, z1)), x1) -> c10(A__ADD(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(A__ADD(recip(mark(z0)), mark(x1)), MARK(recip(z0))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1)), MARK(0)) A__ADD(s(nil), x1) -> c10(A__ADD(nil, mark(x1)), MARK(nil)) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(cons(z0, z1)), x1) -> c10(A__ADD(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(A__ADD(recip(mark(z0)), mark(x1)), MARK(recip(z0))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1)), MARK(0)) A__ADD(s(nil), x1) -> c10(A__ADD(nil, mark(x1)), MARK(nil)) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c11_2, c14_1, c16_2, c17_2, c18_2, c19_2, c20_2, c21_2, c22_2, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2 ---------------------------------------- (105) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing nodes: A__ADD(s(nil), x1) -> c10(A__ADD(nil, mark(x1)), MARK(nil)) ---------------------------------------- (106) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(cons(z0, z1)), x1) -> c10(A__ADD(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(A__ADD(recip(mark(z0)), mark(x1)), MARK(recip(z0))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1)), MARK(0)) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(cons(z0, z1)), x1) -> c10(A__ADD(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(A__ADD(recip(mark(z0)), mark(x1)), MARK(recip(z0))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1)), MARK(0)) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c11_2, c14_1, c16_2, c17_2, c18_2, c19_2, c20_2, c21_2, c22_2, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2 ---------------------------------------- (107) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (108) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c11_2, c14_1, c16_2, c17_2, c18_2, c19_2, c20_2, c21_2, c22_2, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1 ---------------------------------------- (109) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__ADD(s(z0), z1) -> c11(A__ADD(mark(z0), mark(z1)), MARK(z1)) by A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0), MARK(0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil), MARK(nil)) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(cons(z0, z1)), x1) -> c11(A__ADD(cons(mark(z0), z1), mark(x1)), MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(A__ADD(recip(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(nil), x1) -> c11(A__ADD(nil, mark(x1)), MARK(x1)) ---------------------------------------- (110) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0), MARK(0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil), MARK(nil)) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(cons(z0, z1)), x1) -> c11(A__ADD(cons(mark(z0), z1), mark(x1)), MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(A__ADD(recip(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(nil), x1) -> c11(A__ADD(nil, mark(x1)), MARK(x1)) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0), MARK(0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil), MARK(nil)) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(cons(z0, z1)), x1) -> c11(A__ADD(cons(mark(z0), z1), mark(x1)), MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(A__ADD(recip(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(nil), x1) -> c11(A__ADD(nil, mark(x1)), MARK(x1)) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c16_2, c17_2, c18_2, c19_2, c20_2, c21_2, c22_2, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2 ---------------------------------------- (111) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 5 trailing tuple parts ---------------------------------------- (112) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c16_2, c17_2, c18_2, c19_2, c20_2, c21_2, c22_2, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1 ---------------------------------------- (113) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(terms(z0)) -> c16(A__TERMS(mark(z0)), MARK(z0)) by MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(terms(0)) -> c16(A__TERMS(0), MARK(0)) MARK(terms(nil)) -> c16(A__TERMS(nil), MARK(nil)) ---------------------------------------- (114) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(terms(0)) -> c16(A__TERMS(0), MARK(0)) MARK(terms(nil)) -> c16(A__TERMS(nil), MARK(nil)) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(terms(0)) -> c16(A__TERMS(0), MARK(0)) MARK(terms(nil)) -> c16(A__TERMS(nil), MARK(nil)) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c17_2, c18_2, c19_2, c20_2, c21_2, c22_2, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2 ---------------------------------------- (115) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(terms(0)) -> c16(A__TERMS(0), MARK(0)) MARK(terms(nil)) -> c16(A__TERMS(nil), MARK(nil)) ---------------------------------------- (116) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c17_2, c18_2, c19_2, c20_2, c21_2, c22_2, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2 ---------------------------------------- (117) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(sqr(z0)) -> c17(A__SQR(mark(z0)), MARK(z0)) by MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(cons(z0, z1))) -> c17(A__SQR(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(A__SQR(recip(mark(z0))), MARK(recip(z0))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(0)) -> c17(A__SQR(0), MARK(0)) MARK(sqr(nil)) -> c17(A__SQR(nil), MARK(nil)) ---------------------------------------- (118) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(cons(z0, z1))) -> c17(A__SQR(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(A__SQR(recip(mark(z0))), MARK(recip(z0))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(0)) -> c17(A__SQR(0), MARK(0)) MARK(sqr(nil)) -> c17(A__SQR(nil), MARK(nil)) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(cons(z0, z1))) -> c17(A__SQR(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(A__SQR(recip(mark(z0))), MARK(recip(z0))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(0)) -> c17(A__SQR(0), MARK(0)) MARK(sqr(nil)) -> c17(A__SQR(nil), MARK(nil)) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c18_2, c19_2, c20_2, c21_2, c22_2, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2 ---------------------------------------- (119) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(sqr(nil)) -> c17(A__SQR(nil), MARK(nil)) MARK(sqr(0)) -> c17(A__SQR(0), MARK(0)) ---------------------------------------- (120) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(cons(z0, z1))) -> c17(A__SQR(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(A__SQR(recip(mark(z0))), MARK(recip(z0))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(cons(z0, z1))) -> c17(A__SQR(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(A__SQR(recip(mark(z0))), MARK(recip(z0))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c18_2, c19_2, c20_2, c21_2, c22_2, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2 ---------------------------------------- (121) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (122) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c18_2, c19_2, c20_2, c21_2, c22_2, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1 ---------------------------------------- (123) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(add(z0, z1)) -> c18(A__ADD(mark(z0), mark(z1)), MARK(z0)) by MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(cons(z0, z1), x1)) -> c18(A__ADD(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(A__ADD(recip(mark(z0)), mark(x1)), MARK(recip(z0))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1)), MARK(0)) MARK(add(nil, x1)) -> c18(A__ADD(nil, mark(x1)), MARK(nil)) ---------------------------------------- (124) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(cons(z0, z1), x1)) -> c18(A__ADD(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(A__ADD(recip(mark(z0)), mark(x1)), MARK(recip(z0))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1)), MARK(0)) MARK(add(nil, x1)) -> c18(A__ADD(nil, mark(x1)), MARK(nil)) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(cons(z0, z1), x1)) -> c18(A__ADD(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(A__ADD(recip(mark(z0)), mark(x1)), MARK(recip(z0))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1)), MARK(0)) MARK(add(nil, x1)) -> c18(A__ADD(nil, mark(x1)), MARK(nil)) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c19_2, c20_2, c21_2, c22_2, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2 ---------------------------------------- (125) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing nodes: MARK(add(nil, x1)) -> c18(A__ADD(nil, mark(x1)), MARK(nil)) ---------------------------------------- (126) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(cons(z0, z1), x1)) -> c18(A__ADD(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(A__ADD(recip(mark(z0)), mark(x1)), MARK(recip(z0))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1)), MARK(0)) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(cons(z0, z1), x1)) -> c18(A__ADD(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(A__ADD(recip(mark(z0)), mark(x1)), MARK(recip(z0))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1)), MARK(0)) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c19_2, c20_2, c21_2, c22_2, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2 ---------------------------------------- (127) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (128) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c19_2, c20_2, c21_2, c22_2, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1 ---------------------------------------- (129) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(add(z0, z1)) -> c19(A__ADD(mark(z0), mark(z1)), MARK(z1)) by MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0), MARK(0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil), MARK(nil)) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c19(A__ADD(cons(mark(z0), z1), mark(x1)), MARK(x1)) MARK(add(recip(z0), x1)) -> c19(A__ADD(recip(mark(z0)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(nil, x1)) -> c19(A__ADD(nil, mark(x1)), MARK(x1)) ---------------------------------------- (130) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0), MARK(0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil), MARK(nil)) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c19(A__ADD(cons(mark(z0), z1), mark(x1)), MARK(x1)) MARK(add(recip(z0), x1)) -> c19(A__ADD(recip(mark(z0)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(nil, x1)) -> c19(A__ADD(nil, mark(x1)), MARK(x1)) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0), MARK(0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil), MARK(nil)) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(cons(z0, z1), x1)) -> c19(A__ADD(cons(mark(z0), z1), mark(x1)), MARK(x1)) MARK(add(recip(z0), x1)) -> c19(A__ADD(recip(mark(z0)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(nil, x1)) -> c19(A__ADD(nil, mark(x1)), MARK(x1)) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c20_2, c21_2, c22_2, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2 ---------------------------------------- (131) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 5 trailing tuple parts ---------------------------------------- (132) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c20_2, c21_2, c22_2, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1 ---------------------------------------- (133) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(dbl(z0)) -> c20(A__DBL(mark(z0)), MARK(z0)) by MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(cons(z0, z1))) -> c20(A__DBL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(A__DBL(recip(mark(z0))), MARK(recip(z0))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(0)) -> c20(A__DBL(0), MARK(0)) MARK(dbl(nil)) -> c20(A__DBL(nil), MARK(nil)) ---------------------------------------- (134) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(cons(z0, z1))) -> c20(A__DBL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(A__DBL(recip(mark(z0))), MARK(recip(z0))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(0)) -> c20(A__DBL(0), MARK(0)) MARK(dbl(nil)) -> c20(A__DBL(nil), MARK(nil)) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(cons(z0, z1))) -> c20(A__DBL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(A__DBL(recip(mark(z0))), MARK(recip(z0))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(0)) -> c20(A__DBL(0), MARK(0)) MARK(dbl(nil)) -> c20(A__DBL(nil), MARK(nil)) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c21_2, c22_2, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2 ---------------------------------------- (135) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(dbl(nil)) -> c20(A__DBL(nil), MARK(nil)) MARK(dbl(0)) -> c20(A__DBL(0), MARK(0)) ---------------------------------------- (136) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(cons(z0, z1))) -> c20(A__DBL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(A__DBL(recip(mark(z0))), MARK(recip(z0))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(cons(z0, z1))) -> c20(A__DBL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(A__DBL(recip(mark(z0))), MARK(recip(z0))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c21_2, c22_2, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2 ---------------------------------------- (137) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (138) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c21_2, c22_2, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1 ---------------------------------------- (139) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(first(z0, z1)) -> c21(A__FIRST(mark(z0), mark(z1)), MARK(z0)) by MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(x0, recip(z0))) -> c21(A__FIRST(mark(x0), recip(mark(z0))), MARK(x0)) MARK(first(x0, s(z0))) -> c21(A__FIRST(mark(x0), s(mark(z0))), MARK(x0)) MARK(first(x0, 0)) -> c21(A__FIRST(mark(x0), 0), MARK(x0)) MARK(first(x0, nil)) -> c21(A__FIRST(mark(x0), nil), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(cons(z0, z1), x1)) -> c21(A__FIRST(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(A__FIRST(recip(mark(z0)), mark(x1)), MARK(recip(z0))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(0, x1)) -> c21(A__FIRST(0, mark(x1)), MARK(0)) MARK(first(nil, x1)) -> c21(A__FIRST(nil, mark(x1)), MARK(nil)) ---------------------------------------- (140) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(x0, recip(z0))) -> c21(A__FIRST(mark(x0), recip(mark(z0))), MARK(x0)) MARK(first(x0, s(z0))) -> c21(A__FIRST(mark(x0), s(mark(z0))), MARK(x0)) MARK(first(x0, 0)) -> c21(A__FIRST(mark(x0), 0), MARK(x0)) MARK(first(x0, nil)) -> c21(A__FIRST(mark(x0), nil), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(cons(z0, z1), x1)) -> c21(A__FIRST(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(A__FIRST(recip(mark(z0)), mark(x1)), MARK(recip(z0))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(0, x1)) -> c21(A__FIRST(0, mark(x1)), MARK(0)) MARK(first(nil, x1)) -> c21(A__FIRST(nil, mark(x1)), MARK(nil)) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(x0, recip(z0))) -> c21(A__FIRST(mark(x0), recip(mark(z0))), MARK(x0)) MARK(first(x0, s(z0))) -> c21(A__FIRST(mark(x0), s(mark(z0))), MARK(x0)) MARK(first(x0, 0)) -> c21(A__FIRST(mark(x0), 0), MARK(x0)) MARK(first(x0, nil)) -> c21(A__FIRST(mark(x0), nil), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(cons(z0, z1), x1)) -> c21(A__FIRST(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(A__FIRST(recip(mark(z0)), mark(x1)), MARK(recip(z0))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(0, x1)) -> c21(A__FIRST(0, mark(x1)), MARK(0)) MARK(first(nil, x1)) -> c21(A__FIRST(nil, mark(x1)), MARK(nil)) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c22_2, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2 ---------------------------------------- (141) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(first(0, x1)) -> c21(A__FIRST(0, mark(x1)), MARK(0)) MARK(first(nil, x1)) -> c21(A__FIRST(nil, mark(x1)), MARK(nil)) ---------------------------------------- (142) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(x0, recip(z0))) -> c21(A__FIRST(mark(x0), recip(mark(z0))), MARK(x0)) MARK(first(x0, s(z0))) -> c21(A__FIRST(mark(x0), s(mark(z0))), MARK(x0)) MARK(first(x0, 0)) -> c21(A__FIRST(mark(x0), 0), MARK(x0)) MARK(first(x0, nil)) -> c21(A__FIRST(mark(x0), nil), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(cons(z0, z1), x1)) -> c21(A__FIRST(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(A__FIRST(recip(mark(z0)), mark(x1)), MARK(recip(z0))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(x0, recip(z0))) -> c21(A__FIRST(mark(x0), recip(mark(z0))), MARK(x0)) MARK(first(x0, s(z0))) -> c21(A__FIRST(mark(x0), s(mark(z0))), MARK(x0)) MARK(first(x0, 0)) -> c21(A__FIRST(mark(x0), 0), MARK(x0)) MARK(first(x0, nil)) -> c21(A__FIRST(mark(x0), nil), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(cons(z0, z1), x1)) -> c21(A__FIRST(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(A__FIRST(recip(mark(z0)), mark(x1)), MARK(recip(z0))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c22_2, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2 ---------------------------------------- (143) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 6 trailing tuple parts ---------------------------------------- (144) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c22_2, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1 ---------------------------------------- (145) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(first(z0, z1)) -> c22(A__FIRST(mark(z0), mark(z1)), MARK(z1)) by MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(x0, recip(z0))) -> c22(A__FIRST(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(A__FIRST(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(first(x0, 0)) -> c22(A__FIRST(mark(x0), 0), MARK(0)) MARK(first(x0, nil)) -> c22(A__FIRST(mark(x0), nil), MARK(nil)) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c22(A__FIRST(cons(mark(z0), z1), mark(x1)), MARK(x1)) MARK(first(recip(z0), x1)) -> c22(A__FIRST(recip(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(0, x1)) -> c22(A__FIRST(0, mark(x1)), MARK(x1)) MARK(first(nil, x1)) -> c22(A__FIRST(nil, mark(x1)), MARK(x1)) ---------------------------------------- (146) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(x0, recip(z0))) -> c22(A__FIRST(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(A__FIRST(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(first(x0, 0)) -> c22(A__FIRST(mark(x0), 0), MARK(0)) MARK(first(x0, nil)) -> c22(A__FIRST(mark(x0), nil), MARK(nil)) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c22(A__FIRST(cons(mark(z0), z1), mark(x1)), MARK(x1)) MARK(first(recip(z0), x1)) -> c22(A__FIRST(recip(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(0, x1)) -> c22(A__FIRST(0, mark(x1)), MARK(x1)) MARK(first(nil, x1)) -> c22(A__FIRST(nil, mark(x1)), MARK(x1)) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(x0, recip(z0))) -> c22(A__FIRST(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(A__FIRST(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(first(x0, 0)) -> c22(A__FIRST(mark(x0), 0), MARK(0)) MARK(first(x0, nil)) -> c22(A__FIRST(mark(x0), nil), MARK(nil)) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c22(A__FIRST(cons(mark(z0), z1), mark(x1)), MARK(x1)) MARK(first(recip(z0), x1)) -> c22(A__FIRST(recip(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(0, x1)) -> c22(A__FIRST(0, mark(x1)), MARK(x1)) MARK(first(nil, x1)) -> c22(A__FIRST(nil, mark(x1)), MARK(x1)) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2 ---------------------------------------- (147) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(first(x0, nil)) -> c22(A__FIRST(mark(x0), nil), MARK(nil)) MARK(first(x0, 0)) -> c22(A__FIRST(mark(x0), 0), MARK(0)) ---------------------------------------- (148) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(x0, recip(z0))) -> c22(A__FIRST(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(A__FIRST(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c22(A__FIRST(cons(mark(z0), z1), mark(x1)), MARK(x1)) MARK(first(recip(z0), x1)) -> c22(A__FIRST(recip(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(0, x1)) -> c22(A__FIRST(0, mark(x1)), MARK(x1)) MARK(first(nil, x1)) -> c22(A__FIRST(nil, mark(x1)), MARK(x1)) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(x0, recip(z0))) -> c22(A__FIRST(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(A__FIRST(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(cons(z0, z1), x1)) -> c22(A__FIRST(cons(mark(z0), z1), mark(x1)), MARK(x1)) MARK(first(recip(z0), x1)) -> c22(A__FIRST(recip(mark(z0)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(0, x1)) -> c22(A__FIRST(0, mark(x1)), MARK(x1)) MARK(first(nil, x1)) -> c22(A__FIRST(nil, mark(x1)), MARK(x1)) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2 ---------------------------------------- (149) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 6 trailing tuple parts ---------------------------------------- (150) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (151) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__TERMS(terms(z0)) -> c(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) by A__TERMS(terms(x0)) -> c(A__SQR(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), MARK(terms(x0))) A__TERMS(terms(x0)) -> c(A__SQR(terms(mark(x0))), MARK(terms(x0))) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0)), MARK(terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil)), MARK(terms(nil))) ---------------------------------------- (152) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(x0)) -> c(A__SQR(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), MARK(terms(x0))) A__TERMS(terms(x0)) -> c(A__SQR(terms(mark(x0))), MARK(terms(x0))) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0)), MARK(terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil)), MARK(terms(nil))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(x0)) -> c(A__SQR(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), MARK(terms(x0))) A__TERMS(terms(x0)) -> c(A__SQR(terms(mark(x0))), MARK(terms(x0))) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0)), MARK(terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil)), MARK(terms(nil))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (153) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (154) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (155) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__TERMS(sqr(z0)) -> c(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) by A__TERMS(sqr(x0)) -> c(A__SQR(sqr(mark(x0))), MARK(sqr(x0))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0)), MARK(sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil)), MARK(sqr(nil))) ---------------------------------------- (156) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(x0)) -> c(A__SQR(sqr(mark(x0))), MARK(sqr(x0))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0)), MARK(sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil)), MARK(sqr(nil))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(x0)) -> c(A__SQR(sqr(mark(x0))), MARK(sqr(x0))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0)), MARK(sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil)), MARK(sqr(nil))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (157) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (158) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (159) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__TERMS(add(z0, z1)) -> c(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) by A__TERMS(add(x0, x1)) -> c(A__SQR(add(mark(x0), mark(x1))), MARK(add(x0, x1))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) ---------------------------------------- (160) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, x1)) -> c(A__SQR(add(mark(x0), mark(x1))), MARK(add(x0, x1))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, x1)) -> c(A__SQR(add(mark(x0), mark(x1))), MARK(add(x0, x1))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (161) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (162) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (163) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__TERMS(dbl(z0)) -> c(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) by A__TERMS(dbl(x0)) -> c(A__SQR(dbl(mark(x0))), MARK(dbl(x0))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0)), MARK(dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil)), MARK(dbl(nil))) ---------------------------------------- (164) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(x0)) -> c(A__SQR(dbl(mark(x0))), MARK(dbl(x0))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0)), MARK(dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil)), MARK(dbl(nil))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(x0)) -> c(A__SQR(dbl(mark(x0))), MARK(dbl(x0))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0)), MARK(dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil)), MARK(dbl(nil))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (165) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (166) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (167) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__TERMS(first(z0, z1)) -> c(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) by A__TERMS(first(x0, x1)) -> c(A__SQR(first(mark(x0), mark(x1))), MARK(first(x0, x1))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) ---------------------------------------- (168) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, x1)) -> c(A__SQR(first(mark(x0), mark(x1))), MARK(first(x0, x1))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, x1)) -> c(A__SQR(first(mark(x0), mark(x1))), MARK(first(x0, x1))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (169) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (170) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (171) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__SQR(s(x0)) -> c3(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) by A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0)), MARK(0)) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil)), MARK(nil)) A__SQR(s(x0)) -> c3(A__ADD(sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0)), MARK(0)) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil)), MARK(nil)) ---------------------------------------- (172) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0)), MARK(0)) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil)), MARK(nil)) A__SQR(s(x0)) -> c3(A__ADD(sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0)), MARK(0)) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil)), MARK(nil)) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0)), MARK(0)) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil)), MARK(nil)) A__SQR(s(x0)) -> c3(A__ADD(sqr(mark(x0)), dbl(mark(x0))), A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0)), MARK(0)) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil)), MARK(nil)) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (173) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 5 trailing tuple parts ---------------------------------------- (174) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (175) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) by A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), dbl(a__terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0))), MARK(terms(0))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil))), MARK(terms(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(sqr(mark(terms(x0))), a__dbl(a__terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) ---------------------------------------- (176) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0))), MARK(terms(0))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil))), MARK(terms(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(sqr(mark(terms(x0))), a__dbl(a__terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0))), MARK(terms(0))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil))), MARK(terms(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(sqr(mark(terms(x0))), a__dbl(a__terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (177) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (178) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (179) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) by A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), dbl(a__sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0))), MARK(sqr(0))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil))), MARK(sqr(nil))) A__SQR(s(sqr(x0))) -> c3(A__ADD(sqr(mark(sqr(x0))), a__dbl(a__sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) ---------------------------------------- (180) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0))), MARK(sqr(0))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil))), MARK(sqr(nil))) A__SQR(s(sqr(x0))) -> c3(A__ADD(sqr(mark(sqr(x0))), a__dbl(a__sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0))), MARK(sqr(0))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil))), MARK(sqr(nil))) A__SQR(s(sqr(x0))) -> c3(A__ADD(sqr(mark(sqr(x0))), a__dbl(a__sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (181) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (182) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (183) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) by A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), dbl(a__add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(sqr(mark(add(x0, x1))), a__dbl(a__add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) ---------------------------------------- (184) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(sqr(mark(add(x0, x1))), a__dbl(a__add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(sqr(mark(add(x0, x1))), a__dbl(a__add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (185) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (186) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (187) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) by A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), dbl(a__dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0))), MARK(dbl(0))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil))), MARK(dbl(nil))) A__SQR(s(dbl(x0))) -> c3(A__ADD(sqr(mark(dbl(x0))), a__dbl(a__dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) ---------------------------------------- (188) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0))), MARK(dbl(0))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil))), MARK(dbl(nil))) A__SQR(s(dbl(x0))) -> c3(A__ADD(sqr(mark(dbl(x0))), a__dbl(a__dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0))), MARK(dbl(0))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil))), MARK(dbl(nil))) A__SQR(s(dbl(x0))) -> c3(A__ADD(sqr(mark(dbl(x0))), a__dbl(a__dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (189) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (190) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (191) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) by A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), dbl(a__first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(sqr(mark(first(x0, x1))), a__dbl(a__first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) ---------------------------------------- (192) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(sqr(mark(first(x0, x1))), a__dbl(a__first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(sqr(mark(first(x0, x1))), a__dbl(a__first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (193) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (194) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (195) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) by A__SQR(s(cons(x0, x1))) -> c3(A__ADD(a__sqr(mark(cons(x0, x1))), dbl(cons(mark(x0), x1))), A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(x0, x1))) -> c3(A__ADD(sqr(mark(cons(x0, x1))), a__dbl(cons(mark(x0), x1))), A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) ---------------------------------------- (196) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(x0, x1))) -> c3(A__ADD(sqr(mark(cons(x0, x1))), a__dbl(cons(mark(x0), x1))), A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(x0, x1))) -> c3(A__ADD(sqr(mark(cons(x0, x1))), a__dbl(cons(mark(x0), x1))), A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (197) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (198) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (199) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) by A__SQR(s(recip(x0))) -> c3(A__ADD(a__sqr(mark(recip(x0))), dbl(recip(mark(x0)))), A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(x0))) -> c3(A__ADD(sqr(mark(recip(x0))), a__dbl(recip(mark(x0)))), A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) ---------------------------------------- (200) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(x0))) -> c3(A__ADD(sqr(mark(recip(x0))), a__dbl(recip(mark(x0)))), A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(x0))) -> c3(A__ADD(sqr(mark(recip(x0))), a__dbl(recip(mark(x0)))), A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (201) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (202) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (203) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) by A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), dbl(s(mark(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(x0))) -> c3(A__ADD(sqr(mark(s(x0))), a__dbl(s(mark(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) ---------------------------------------- (204) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(x0))) -> c3(A__ADD(sqr(mark(s(x0))), a__dbl(s(mark(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(x0))) -> c3(A__ADD(sqr(mark(s(x0))), a__dbl(s(mark(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (205) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (206) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (207) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) by A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(a__terms(mark(x0))), dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(x0))) -> c3(A__ADD(sqr(a__terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0))), MARK(terms(0))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil))), MARK(terms(nil))) ---------------------------------------- (208) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(sqr(a__terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0))), MARK(terms(0))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil))), MARK(terms(nil))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(sqr(a__terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0))), MARK(terms(0))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil))), MARK(terms(nil))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (209) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (210) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (211) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) by A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(a__sqr(mark(x0))), dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(sqr(a__sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0))), MARK(sqr(0))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil))), MARK(sqr(nil))) ---------------------------------------- (212) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(sqr(a__sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0))), MARK(sqr(0))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil))), MARK(sqr(nil))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(sqr(a__sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0))), MARK(sqr(0))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil))), MARK(sqr(nil))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (213) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (214) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (215) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) by A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(a__add(mark(x0), mark(x1))), dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(sqr(a__add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) ---------------------------------------- (216) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(sqr(a__add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(sqr(a__add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (217) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (218) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (219) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) by A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(a__dbl(mark(x0))), dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(x0))) -> c3(A__ADD(sqr(a__dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0))), MARK(dbl(0))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil))), MARK(dbl(nil))) ---------------------------------------- (220) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(sqr(a__dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0))), MARK(dbl(0))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil))), MARK(dbl(nil))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(sqr(a__dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0))), MARK(dbl(0))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil))), MARK(dbl(nil))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (221) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (222) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (223) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) by A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(a__first(mark(x0), mark(x1))), dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(sqr(a__first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) ---------------------------------------- (224) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(sqr(a__first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(sqr(a__first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (225) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (226) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (227) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) by A__SQR(s(cons(x0, x1))) -> c3(A__ADD(a__sqr(cons(mark(x0), x1)), dbl(mark(cons(x0, x1)))), A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__ADD(sqr(cons(mark(x0), x1)), a__dbl(mark(cons(x0, x1)))), A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) ---------------------------------------- (228) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(x0, x1))) -> c3(A__ADD(sqr(cons(mark(x0), x1)), a__dbl(mark(cons(x0, x1)))), A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(x0, x1))) -> c3(A__ADD(sqr(cons(mark(x0), x1)), a__dbl(mark(cons(x0, x1)))), A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (229) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (230) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (231) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) by A__SQR(s(recip(x0))) -> c3(A__ADD(a__sqr(recip(mark(x0))), dbl(mark(recip(x0)))), A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__ADD(sqr(recip(mark(x0))), a__dbl(mark(recip(x0)))), A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) ---------------------------------------- (232) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(x0))) -> c3(A__ADD(sqr(recip(mark(x0))), a__dbl(mark(recip(x0)))), A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(x0))) -> c3(A__ADD(sqr(recip(mark(x0))), a__dbl(mark(recip(x0)))), A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (233) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (234) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_3, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1 ---------------------------------------- (235) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) by A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(s(mark(x0))), dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__ADD(s(a__add(a__sqr(mark(mark(x0))), a__dbl(mark(mark(x0))))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(sqr(s(mark(x0))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(s(a__terms(mark(z0)))), a__dbl(mark(s(terms(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(s(a__sqr(mark(z0)))), a__dbl(mark(s(sqr(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__add(mark(z0), mark(z1)))), a__dbl(mark(s(add(z0, z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(s(a__dbl(mark(z0)))), a__dbl(mark(s(dbl(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__first(mark(z0), mark(z1)))), a__dbl(mark(s(first(z0, z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(s(cons(mark(z0), z1))), a__dbl(mark(s(cons(z0, z1))))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(s(recip(mark(z0)))), a__dbl(mark(s(recip(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(s(s(mark(z0)))), a__dbl(mark(s(s(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(s(0)), a__dbl(mark(s(0)))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(s(nil)), a__dbl(mark(s(nil)))), A__SQR(mark(s(nil))), MARK(s(nil))) ---------------------------------------- (236) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(s(x0))) -> c3(A__ADD(s(a__add(a__sqr(mark(mark(x0))), a__dbl(mark(mark(x0))))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(sqr(s(mark(x0))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(s(a__terms(mark(z0)))), a__dbl(mark(s(terms(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(s(a__sqr(mark(z0)))), a__dbl(mark(s(sqr(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__add(mark(z0), mark(z1)))), a__dbl(mark(s(add(z0, z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(s(a__dbl(mark(z0)))), a__dbl(mark(s(dbl(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__first(mark(z0), mark(z1)))), a__dbl(mark(s(first(z0, z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(s(cons(mark(z0), z1))), a__dbl(mark(s(cons(z0, z1))))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(s(recip(mark(z0)))), a__dbl(mark(s(recip(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(s(s(mark(z0)))), a__dbl(mark(s(s(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(s(0)), a__dbl(mark(s(0)))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(s(nil)), a__dbl(mark(s(nil)))), A__SQR(mark(s(nil))), MARK(s(nil))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(s(x0))) -> c3(A__ADD(s(a__add(a__sqr(mark(mark(x0))), a__dbl(mark(mark(x0))))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(sqr(s(mark(x0))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(s(a__terms(mark(z0)))), a__dbl(mark(s(terms(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(s(a__sqr(mark(z0)))), a__dbl(mark(s(sqr(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__add(mark(z0), mark(z1)))), a__dbl(mark(s(add(z0, z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(s(a__dbl(mark(z0)))), a__dbl(mark(s(dbl(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__first(mark(z0), mark(z1)))), a__dbl(mark(s(first(z0, z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(s(cons(mark(z0), z1))), a__dbl(mark(s(cons(z0, z1))))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(s(recip(mark(z0)))), a__dbl(mark(s(recip(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(s(s(mark(z0)))), a__dbl(mark(s(s(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(s(0)), a__dbl(mark(s(0)))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(s(nil)), a__dbl(mark(s(nil)))), A__SQR(mark(s(nil))), MARK(s(nil))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1, c3_3 ---------------------------------------- (237) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (238) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(s(x0))) -> c3(A__ADD(s(a__add(a__sqr(mark(mark(x0))), a__dbl(mark(mark(x0))))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(s(a__terms(mark(z0)))), a__dbl(mark(s(terms(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(s(a__sqr(mark(z0)))), a__dbl(mark(s(sqr(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__add(mark(z0), mark(z1)))), a__dbl(mark(s(add(z0, z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(s(a__dbl(mark(z0)))), a__dbl(mark(s(dbl(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__first(mark(z0), mark(z1)))), a__dbl(mark(s(first(z0, z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(s(cons(mark(z0), z1))), a__dbl(mark(s(cons(z0, z1))))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(s(recip(mark(z0)))), a__dbl(mark(s(recip(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(s(s(mark(z0)))), a__dbl(mark(s(s(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(s(0)), a__dbl(mark(s(0)))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(s(nil)), a__dbl(mark(s(nil)))), A__SQR(mark(s(nil))), MARK(s(nil))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(s(x0))) -> c3(A__ADD(s(a__add(a__sqr(mark(mark(x0))), a__dbl(mark(mark(x0))))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(s(a__terms(mark(z0)))), a__dbl(mark(s(terms(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(s(a__sqr(mark(z0)))), a__dbl(mark(s(sqr(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__add(mark(z0), mark(z1)))), a__dbl(mark(s(add(z0, z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(s(a__dbl(mark(z0)))), a__dbl(mark(s(dbl(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__first(mark(z0), mark(z1)))), a__dbl(mark(s(first(z0, z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(s(cons(mark(z0), z1))), a__dbl(mark(s(cons(z0, z1))))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(s(recip(mark(z0)))), a__dbl(mark(s(recip(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(s(s(mark(z0)))), a__dbl(mark(s(s(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(s(0)), a__dbl(mark(s(0)))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(s(nil)), a__dbl(mark(s(nil)))), A__SQR(mark(s(nil))), MARK(s(nil))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1, c3_3 ---------------------------------------- (239) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) by A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), 0), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(0)), A__SQR(mark(0))) ---------------------------------------- (240) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(s(x0))) -> c3(A__ADD(s(a__add(a__sqr(mark(mark(x0))), a__dbl(mark(mark(x0))))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(s(a__terms(mark(z0)))), a__dbl(mark(s(terms(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(s(a__sqr(mark(z0)))), a__dbl(mark(s(sqr(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__add(mark(z0), mark(z1)))), a__dbl(mark(s(add(z0, z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(s(a__dbl(mark(z0)))), a__dbl(mark(s(dbl(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__first(mark(z0), mark(z1)))), a__dbl(mark(s(first(z0, z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(s(cons(mark(z0), z1))), a__dbl(mark(s(cons(z0, z1))))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(s(recip(mark(z0)))), a__dbl(mark(s(recip(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(s(s(mark(z0)))), a__dbl(mark(s(s(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(s(0)), a__dbl(mark(s(0)))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(s(nil)), a__dbl(mark(s(nil)))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), 0), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(0)), A__SQR(mark(0))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(s(x0))) -> c3(A__ADD(s(a__add(a__sqr(mark(mark(x0))), a__dbl(mark(mark(x0))))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(s(a__terms(mark(z0)))), a__dbl(mark(s(terms(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(s(a__sqr(mark(z0)))), a__dbl(mark(s(sqr(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__add(mark(z0), mark(z1)))), a__dbl(mark(s(add(z0, z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(s(a__dbl(mark(z0)))), a__dbl(mark(s(dbl(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__first(mark(z0), mark(z1)))), a__dbl(mark(s(first(z0, z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(s(cons(mark(z0), z1))), a__dbl(mark(s(cons(z0, z1))))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(s(recip(mark(z0)))), a__dbl(mark(s(recip(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(s(s(mark(z0)))), a__dbl(mark(s(s(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(s(0)), a__dbl(mark(s(0)))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(s(nil)), a__dbl(mark(s(nil)))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), 0), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(sqr(mark(0)), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(0)), A__SQR(mark(0))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1, c3_3 ---------------------------------------- (241) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (242) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(s(x0))) -> c3(A__ADD(s(a__add(a__sqr(mark(mark(x0))), a__dbl(mark(mark(x0))))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(s(a__terms(mark(z0)))), a__dbl(mark(s(terms(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(s(a__sqr(mark(z0)))), a__dbl(mark(s(sqr(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__add(mark(z0), mark(z1)))), a__dbl(mark(s(add(z0, z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(s(a__dbl(mark(z0)))), a__dbl(mark(s(dbl(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__first(mark(z0), mark(z1)))), a__dbl(mark(s(first(z0, z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(s(cons(mark(z0), z1))), a__dbl(mark(s(cons(z0, z1))))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(s(recip(mark(z0)))), a__dbl(mark(s(recip(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(s(s(mark(z0)))), a__dbl(mark(s(s(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(s(0)), a__dbl(mark(s(0)))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(s(nil)), a__dbl(mark(s(nil)))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), 0), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__SQR(mark(0))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(s(x0))) -> c3(A__ADD(s(a__add(a__sqr(mark(mark(x0))), a__dbl(mark(mark(x0))))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(s(a__terms(mark(z0)))), a__dbl(mark(s(terms(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(s(a__sqr(mark(z0)))), a__dbl(mark(s(sqr(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__add(mark(z0), mark(z1)))), a__dbl(mark(s(add(z0, z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(s(a__dbl(mark(z0)))), a__dbl(mark(s(dbl(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__first(mark(z0), mark(z1)))), a__dbl(mark(s(first(z0, z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(s(cons(mark(z0), z1))), a__dbl(mark(s(cons(z0, z1))))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(s(recip(mark(z0)))), a__dbl(mark(s(recip(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(s(s(mark(z0)))), a__dbl(mark(s(s(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(s(0)), a__dbl(mark(s(0)))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(s(nil)), a__dbl(mark(s(nil)))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), 0), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__SQR(mark(0))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1, c3_3, c3_1 ---------------------------------------- (243) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) by A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(nil)) -> c3(A__ADD(sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(nil)), A__SQR(mark(nil))) ---------------------------------------- (244) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(s(x0))) -> c3(A__ADD(s(a__add(a__sqr(mark(mark(x0))), a__dbl(mark(mark(x0))))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(s(a__terms(mark(z0)))), a__dbl(mark(s(terms(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(s(a__sqr(mark(z0)))), a__dbl(mark(s(sqr(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__add(mark(z0), mark(z1)))), a__dbl(mark(s(add(z0, z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(s(a__dbl(mark(z0)))), a__dbl(mark(s(dbl(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__first(mark(z0), mark(z1)))), a__dbl(mark(s(first(z0, z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(s(cons(mark(z0), z1))), a__dbl(mark(s(cons(z0, z1))))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(s(recip(mark(z0)))), a__dbl(mark(s(recip(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(s(s(mark(z0)))), a__dbl(mark(s(s(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(s(0)), a__dbl(mark(s(0)))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(s(nil)), a__dbl(mark(s(nil)))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), 0), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(nil)), A__SQR(mark(nil))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(s(x0))) -> c3(A__ADD(s(a__add(a__sqr(mark(mark(x0))), a__dbl(mark(mark(x0))))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(s(a__terms(mark(z0)))), a__dbl(mark(s(terms(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(s(a__sqr(mark(z0)))), a__dbl(mark(s(sqr(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__add(mark(z0), mark(z1)))), a__dbl(mark(s(add(z0, z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(s(a__dbl(mark(z0)))), a__dbl(mark(s(dbl(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__first(mark(z0), mark(z1)))), a__dbl(mark(s(first(z0, z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(s(cons(mark(z0), z1))), a__dbl(mark(s(cons(z0, z1))))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(s(recip(mark(z0)))), a__dbl(mark(s(recip(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(s(s(mark(z0)))), a__dbl(mark(s(s(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(s(0)), a__dbl(mark(s(0)))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(s(nil)), a__dbl(mark(s(nil)))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), 0), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(sqr(mark(nil)), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(nil)), A__SQR(mark(nil))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1, c3_3, c3_1 ---------------------------------------- (245) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (246) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(s(x0))) -> c3(A__ADD(s(a__add(a__sqr(mark(mark(x0))), a__dbl(mark(mark(x0))))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(s(a__terms(mark(z0)))), a__dbl(mark(s(terms(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(s(a__sqr(mark(z0)))), a__dbl(mark(s(sqr(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__add(mark(z0), mark(z1)))), a__dbl(mark(s(add(z0, z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(s(a__dbl(mark(z0)))), a__dbl(mark(s(dbl(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__first(mark(z0), mark(z1)))), a__dbl(mark(s(first(z0, z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(s(cons(mark(z0), z1))), a__dbl(mark(s(cons(z0, z1))))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(s(recip(mark(z0)))), a__dbl(mark(s(recip(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(s(s(mark(z0)))), a__dbl(mark(s(s(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(s(0)), a__dbl(mark(s(0)))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(s(nil)), a__dbl(mark(s(nil)))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), 0), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(nil)) -> c3(A__SQR(mark(nil))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(s(x0))) -> c3(A__ADD(s(a__add(a__sqr(mark(mark(x0))), a__dbl(mark(mark(x0))))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(s(a__terms(mark(z0)))), a__dbl(mark(s(terms(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(s(a__sqr(mark(z0)))), a__dbl(mark(s(sqr(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__add(mark(z0), mark(z1)))), a__dbl(mark(s(add(z0, z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(s(a__dbl(mark(z0)))), a__dbl(mark(s(dbl(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__first(mark(z0), mark(z1)))), a__dbl(mark(s(first(z0, z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(s(cons(mark(z0), z1))), a__dbl(mark(s(cons(z0, z1))))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(s(recip(mark(z0)))), a__dbl(mark(s(recip(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(s(s(mark(z0)))), a__dbl(mark(s(s(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(s(0)), a__dbl(mark(s(0)))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(s(nil)), a__dbl(mark(s(nil)))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), 0), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(nil)) -> c3(A__SQR(mark(nil))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1, c3_3, c3_1 ---------------------------------------- (247) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) by A__SQR(s(terms(z0))) -> c3(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__SQR(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__SQR(recip(mark(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__SQR(s(mark(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__SQR(0), MARK(0)) A__SQR(s(nil)) -> c3(A__SQR(nil), MARK(nil)) ---------------------------------------- (248) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(s(x0))) -> c3(A__ADD(s(a__add(a__sqr(mark(mark(x0))), a__dbl(mark(mark(x0))))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(s(a__terms(mark(z0)))), a__dbl(mark(s(terms(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(s(a__sqr(mark(z0)))), a__dbl(mark(s(sqr(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__add(mark(z0), mark(z1)))), a__dbl(mark(s(add(z0, z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(s(a__dbl(mark(z0)))), a__dbl(mark(s(dbl(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__first(mark(z0), mark(z1)))), a__dbl(mark(s(first(z0, z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(s(cons(mark(z0), z1))), a__dbl(mark(s(cons(z0, z1))))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(s(recip(mark(z0)))), a__dbl(mark(s(recip(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(s(s(mark(z0)))), a__dbl(mark(s(s(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(s(0)), a__dbl(mark(s(0)))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(s(nil)), a__dbl(mark(s(nil)))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), 0), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(nil)) -> c3(A__SQR(mark(nil))) A__SQR(s(terms(z0))) -> c3(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__SQR(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__SQR(recip(mark(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__SQR(s(mark(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__SQR(0), MARK(0)) A__SQR(s(nil)) -> c3(A__SQR(nil), MARK(nil)) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(s(x0))) -> c3(A__ADD(s(a__add(a__sqr(mark(mark(x0))), a__dbl(mark(mark(x0))))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(s(a__terms(mark(z0)))), a__dbl(mark(s(terms(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(s(a__sqr(mark(z0)))), a__dbl(mark(s(sqr(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__add(mark(z0), mark(z1)))), a__dbl(mark(s(add(z0, z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(s(a__dbl(mark(z0)))), a__dbl(mark(s(dbl(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__first(mark(z0), mark(z1)))), a__dbl(mark(s(first(z0, z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(s(cons(mark(z0), z1))), a__dbl(mark(s(cons(z0, z1))))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(s(recip(mark(z0)))), a__dbl(mark(s(recip(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(s(s(mark(z0)))), a__dbl(mark(s(s(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(s(0)), a__dbl(mark(s(0)))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(s(nil)), a__dbl(mark(s(nil)))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), 0), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(nil)) -> c3(A__SQR(mark(nil))) A__SQR(s(terms(z0))) -> c3(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__SQR(cons(mark(z0), z1)), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__SQR(recip(mark(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__SQR(s(mark(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__SQR(0), MARK(0)) A__SQR(s(nil)) -> c3(A__SQR(nil), MARK(nil)) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1, c3_3, c3_1 ---------------------------------------- (249) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 6 trailing tuple parts ---------------------------------------- (250) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(s(x0))) -> c3(A__ADD(s(a__add(a__sqr(mark(mark(x0))), a__dbl(mark(mark(x0))))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(s(a__terms(mark(z0)))), a__dbl(mark(s(terms(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(s(a__sqr(mark(z0)))), a__dbl(mark(s(sqr(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__add(mark(z0), mark(z1)))), a__dbl(mark(s(add(z0, z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(s(a__dbl(mark(z0)))), a__dbl(mark(s(dbl(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__first(mark(z0), mark(z1)))), a__dbl(mark(s(first(z0, z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(s(cons(mark(z0), z1))), a__dbl(mark(s(cons(z0, z1))))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(s(recip(mark(z0)))), a__dbl(mark(s(recip(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(s(s(mark(z0)))), a__dbl(mark(s(s(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(s(0)), a__dbl(mark(s(0)))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(s(nil)), a__dbl(mark(s(nil)))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), 0), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(nil)) -> c3(A__SQR(mark(nil))) A__SQR(s(terms(z0))) -> c3(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__SQR(s(s(z0))) -> c3(A__SQR(s(mark(z0))), MARK(s(z0))) A__SQR(s(cons(z0, z1))) -> c3(MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(MARK(recip(z0))) A__SQR(s(0)) -> c3 A__SQR(s(nil)) -> c3 S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(s(x0))) -> c3(A__ADD(s(a__add(a__sqr(mark(mark(x0))), a__dbl(mark(mark(x0))))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(s(a__terms(mark(z0)))), a__dbl(mark(s(terms(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(s(a__sqr(mark(z0)))), a__dbl(mark(s(sqr(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__add(mark(z0), mark(z1)))), a__dbl(mark(s(add(z0, z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(s(a__dbl(mark(z0)))), a__dbl(mark(s(dbl(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__first(mark(z0), mark(z1)))), a__dbl(mark(s(first(z0, z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(s(cons(mark(z0), z1))), a__dbl(mark(s(cons(z0, z1))))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(s(recip(mark(z0)))), a__dbl(mark(s(recip(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(s(s(mark(z0)))), a__dbl(mark(s(s(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(s(0)), a__dbl(mark(s(0)))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(s(nil)), a__dbl(mark(s(nil)))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), 0), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(nil)) -> c3(A__SQR(mark(nil))) A__SQR(s(terms(z0))) -> c3(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__SQR(s(s(z0))) -> c3(A__SQR(s(mark(z0))), MARK(s(z0))) A__SQR(s(cons(z0, z1))) -> c3(MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(MARK(recip(z0))) A__SQR(s(0)) -> c3 A__SQR(s(nil)) -> c3 K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1, c3_3, c3_1, c3 ---------------------------------------- (251) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) by A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(0, a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) ---------------------------------------- (252) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(s(x0))) -> c3(A__ADD(s(a__add(a__sqr(mark(mark(x0))), a__dbl(mark(mark(x0))))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(s(a__terms(mark(z0)))), a__dbl(mark(s(terms(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(s(a__sqr(mark(z0)))), a__dbl(mark(s(sqr(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__add(mark(z0), mark(z1)))), a__dbl(mark(s(add(z0, z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(s(a__dbl(mark(z0)))), a__dbl(mark(s(dbl(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__first(mark(z0), mark(z1)))), a__dbl(mark(s(first(z0, z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(s(cons(mark(z0), z1))), a__dbl(mark(s(cons(z0, z1))))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(s(recip(mark(z0)))), a__dbl(mark(s(recip(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(s(s(mark(z0)))), a__dbl(mark(s(s(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(s(0)), a__dbl(mark(s(0)))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(s(nil)), a__dbl(mark(s(nil)))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), 0), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(nil)) -> c3(A__SQR(mark(nil))) A__SQR(s(terms(z0))) -> c3(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__SQR(s(s(z0))) -> c3(A__SQR(s(mark(z0))), MARK(s(z0))) A__SQR(s(cons(z0, z1))) -> c3(MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(MARK(recip(z0))) A__SQR(s(0)) -> c3 A__SQR(s(nil)) -> c3 A__SQR(s(0)) -> c3(A__ADD(0, a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(s(x0))) -> c3(A__ADD(s(a__add(a__sqr(mark(mark(x0))), a__dbl(mark(mark(x0))))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(s(a__terms(mark(z0)))), a__dbl(mark(s(terms(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(s(a__sqr(mark(z0)))), a__dbl(mark(s(sqr(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__add(mark(z0), mark(z1)))), a__dbl(mark(s(add(z0, z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(s(a__dbl(mark(z0)))), a__dbl(mark(s(dbl(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__first(mark(z0), mark(z1)))), a__dbl(mark(s(first(z0, z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(s(cons(mark(z0), z1))), a__dbl(mark(s(cons(z0, z1))))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(s(recip(mark(z0)))), a__dbl(mark(s(recip(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(s(s(mark(z0)))), a__dbl(mark(s(s(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(s(0)), a__dbl(mark(s(0)))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(s(nil)), a__dbl(mark(s(nil)))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), 0), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(nil)) -> c3(A__SQR(mark(nil))) A__SQR(s(terms(z0))) -> c3(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__SQR(s(s(z0))) -> c3(A__SQR(s(mark(z0))), MARK(s(z0))) A__SQR(s(cons(z0, z1))) -> c3(MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(MARK(recip(z0))) A__SQR(s(0)) -> c3 A__SQR(s(nil)) -> c3 A__SQR(s(0)) -> c3(A__ADD(0, a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(sqr(0), a__dbl(mark(0))), A__SQR(mark(0))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1, c3_3, c3_1, c3 ---------------------------------------- (253) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (254) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(s(x0))) -> c3(A__ADD(s(a__add(a__sqr(mark(mark(x0))), a__dbl(mark(mark(x0))))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(s(a__terms(mark(z0)))), a__dbl(mark(s(terms(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(s(a__sqr(mark(z0)))), a__dbl(mark(s(sqr(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__add(mark(z0), mark(z1)))), a__dbl(mark(s(add(z0, z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(s(a__dbl(mark(z0)))), a__dbl(mark(s(dbl(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__first(mark(z0), mark(z1)))), a__dbl(mark(s(first(z0, z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(s(cons(mark(z0), z1))), a__dbl(mark(s(cons(z0, z1))))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(s(recip(mark(z0)))), a__dbl(mark(s(recip(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(s(s(mark(z0)))), a__dbl(mark(s(s(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(s(0)), a__dbl(mark(s(0)))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(s(nil)), a__dbl(mark(s(nil)))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), 0), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(nil)) -> c3(A__SQR(mark(nil))) A__SQR(s(terms(z0))) -> c3(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__SQR(s(s(z0))) -> c3(A__SQR(s(mark(z0))), MARK(s(z0))) A__SQR(s(cons(z0, z1))) -> c3(MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(MARK(recip(z0))) A__SQR(s(0)) -> c3 A__SQR(s(nil)) -> c3 A__SQR(s(0)) -> c3(A__ADD(0, a__dbl(mark(0))), A__SQR(mark(0))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(s(x0))) -> c3(A__ADD(s(a__add(a__sqr(mark(mark(x0))), a__dbl(mark(mark(x0))))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(s(a__terms(mark(z0)))), a__dbl(mark(s(terms(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(s(a__sqr(mark(z0)))), a__dbl(mark(s(sqr(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__add(mark(z0), mark(z1)))), a__dbl(mark(s(add(z0, z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(s(a__dbl(mark(z0)))), a__dbl(mark(s(dbl(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__first(mark(z0), mark(z1)))), a__dbl(mark(s(first(z0, z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(s(cons(mark(z0), z1))), a__dbl(mark(s(cons(z0, z1))))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(s(recip(mark(z0)))), a__dbl(mark(s(recip(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(s(s(mark(z0)))), a__dbl(mark(s(s(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(s(0)), a__dbl(mark(s(0)))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(s(nil)), a__dbl(mark(s(nil)))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), 0), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(nil)) -> c3(A__SQR(mark(nil))) A__SQR(s(terms(z0))) -> c3(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__SQR(s(s(z0))) -> c3(A__SQR(s(mark(z0))), MARK(s(z0))) A__SQR(s(cons(z0, z1))) -> c3(MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(MARK(recip(z0))) A__SQR(s(0)) -> c3 A__SQR(s(nil)) -> c3 A__SQR(s(0)) -> c3(A__ADD(0, a__dbl(mark(0))), A__SQR(mark(0))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1, c3_3, c3_1, c3 ---------------------------------------- (255) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) by A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(nil)) -> c3(A__ADD(sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) ---------------------------------------- (256) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(s(x0))) -> c3(A__ADD(s(a__add(a__sqr(mark(mark(x0))), a__dbl(mark(mark(x0))))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(s(a__terms(mark(z0)))), a__dbl(mark(s(terms(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(s(a__sqr(mark(z0)))), a__dbl(mark(s(sqr(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__add(mark(z0), mark(z1)))), a__dbl(mark(s(add(z0, z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(s(a__dbl(mark(z0)))), a__dbl(mark(s(dbl(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__first(mark(z0), mark(z1)))), a__dbl(mark(s(first(z0, z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(s(cons(mark(z0), z1))), a__dbl(mark(s(cons(z0, z1))))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(s(recip(mark(z0)))), a__dbl(mark(s(recip(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(s(s(mark(z0)))), a__dbl(mark(s(s(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(s(0)), a__dbl(mark(s(0)))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(s(nil)), a__dbl(mark(s(nil)))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), 0), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(nil)) -> c3(A__SQR(mark(nil))) A__SQR(s(terms(z0))) -> c3(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__SQR(s(s(z0))) -> c3(A__SQR(s(mark(z0))), MARK(s(z0))) A__SQR(s(cons(z0, z1))) -> c3(MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(MARK(recip(z0))) A__SQR(s(0)) -> c3 A__SQR(s(nil)) -> c3 A__SQR(s(0)) -> c3(A__ADD(0, a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(s(x0))) -> c3(A__ADD(s(a__add(a__sqr(mark(mark(x0))), a__dbl(mark(mark(x0))))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(s(a__terms(mark(z0)))), a__dbl(mark(s(terms(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(s(a__sqr(mark(z0)))), a__dbl(mark(s(sqr(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__add(mark(z0), mark(z1)))), a__dbl(mark(s(add(z0, z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(s(a__dbl(mark(z0)))), a__dbl(mark(s(dbl(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__first(mark(z0), mark(z1)))), a__dbl(mark(s(first(z0, z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(s(cons(mark(z0), z1))), a__dbl(mark(s(cons(z0, z1))))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(s(recip(mark(z0)))), a__dbl(mark(s(recip(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(s(s(mark(z0)))), a__dbl(mark(s(s(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(s(0)), a__dbl(mark(s(0)))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(s(nil)), a__dbl(mark(s(nil)))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), 0), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(nil)) -> c3(A__SQR(mark(nil))) A__SQR(s(terms(z0))) -> c3(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__SQR(s(s(z0))) -> c3(A__SQR(s(mark(z0))), MARK(s(z0))) A__SQR(s(cons(z0, z1))) -> c3(MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(MARK(recip(z0))) A__SQR(s(0)) -> c3 A__SQR(s(nil)) -> c3 A__SQR(s(0)) -> c3(A__ADD(0, a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(sqr(nil), a__dbl(mark(nil))), A__SQR(mark(nil))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1, c3_3, c3_1, c3 ---------------------------------------- (257) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 1 trailing tuple parts ---------------------------------------- (258) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(s(x0))) -> c3(A__ADD(s(a__add(a__sqr(mark(mark(x0))), a__dbl(mark(mark(x0))))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(s(a__terms(mark(z0)))), a__dbl(mark(s(terms(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(s(a__sqr(mark(z0)))), a__dbl(mark(s(sqr(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__add(mark(z0), mark(z1)))), a__dbl(mark(s(add(z0, z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(s(a__dbl(mark(z0)))), a__dbl(mark(s(dbl(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__first(mark(z0), mark(z1)))), a__dbl(mark(s(first(z0, z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(s(cons(mark(z0), z1))), a__dbl(mark(s(cons(z0, z1))))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(s(recip(mark(z0)))), a__dbl(mark(s(recip(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(s(s(mark(z0)))), a__dbl(mark(s(s(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(s(0)), a__dbl(mark(s(0)))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(s(nil)), a__dbl(mark(s(nil)))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), 0), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(nil)) -> c3(A__SQR(mark(nil))) A__SQR(s(terms(z0))) -> c3(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__SQR(s(s(z0))) -> c3(A__SQR(s(mark(z0))), MARK(s(z0))) A__SQR(s(cons(z0, z1))) -> c3(MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(MARK(recip(z0))) A__SQR(s(0)) -> c3 A__SQR(s(nil)) -> c3 A__SQR(s(0)) -> c3(A__ADD(0, a__dbl(mark(0))), A__SQR(mark(0))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(s(x0))) -> c3(A__ADD(s(a__add(a__sqr(mark(mark(x0))), a__dbl(mark(mark(x0))))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(s(a__terms(mark(z0)))), a__dbl(mark(s(terms(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(s(a__sqr(mark(z0)))), a__dbl(mark(s(sqr(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__add(mark(z0), mark(z1)))), a__dbl(mark(s(add(z0, z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(s(a__dbl(mark(z0)))), a__dbl(mark(s(dbl(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__first(mark(z0), mark(z1)))), a__dbl(mark(s(first(z0, z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(s(cons(mark(z0), z1))), a__dbl(mark(s(cons(z0, z1))))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(s(recip(mark(z0)))), a__dbl(mark(s(recip(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(s(s(mark(z0)))), a__dbl(mark(s(s(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(s(0)), a__dbl(mark(s(0)))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(s(nil)), a__dbl(mark(s(nil)))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), 0), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(nil)) -> c3(A__SQR(mark(nil))) A__SQR(s(terms(z0))) -> c3(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__SQR(s(s(z0))) -> c3(A__SQR(s(mark(z0))), MARK(s(z0))) A__SQR(s(cons(z0, z1))) -> c3(MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(MARK(recip(z0))) A__SQR(s(0)) -> c3 A__SQR(s(nil)) -> c3 A__SQR(s(0)) -> c3(A__ADD(0, a__dbl(mark(0))), A__SQR(mark(0))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1, c3_3, c3_1, c3 ---------------------------------------- (259) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__SQR(s(x0)) -> c4(A__ADD(a__sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) by A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), dbl(0)), A__DBL(mark(0)), MARK(0)) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__DBL(mark(nil)), MARK(nil)) A__SQR(s(x0)) -> c4(A__ADD(sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), dbl(mark(0))), A__DBL(mark(0)), MARK(0)) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), dbl(mark(nil))), A__DBL(mark(nil)), MARK(nil)) ---------------------------------------- (260) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(s(x0))) -> c3(A__ADD(s(a__add(a__sqr(mark(mark(x0))), a__dbl(mark(mark(x0))))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(s(a__terms(mark(z0)))), a__dbl(mark(s(terms(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(s(a__sqr(mark(z0)))), a__dbl(mark(s(sqr(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__add(mark(z0), mark(z1)))), a__dbl(mark(s(add(z0, z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(s(a__dbl(mark(z0)))), a__dbl(mark(s(dbl(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__first(mark(z0), mark(z1)))), a__dbl(mark(s(first(z0, z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(s(cons(mark(z0), z1))), a__dbl(mark(s(cons(z0, z1))))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(s(recip(mark(z0)))), a__dbl(mark(s(recip(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(s(s(mark(z0)))), a__dbl(mark(s(s(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(s(0)), a__dbl(mark(s(0)))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(s(nil)), a__dbl(mark(s(nil)))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), 0), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(nil)) -> c3(A__SQR(mark(nil))) A__SQR(s(terms(z0))) -> c3(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__SQR(s(s(z0))) -> c3(A__SQR(s(mark(z0))), MARK(s(z0))) A__SQR(s(cons(z0, z1))) -> c3(MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(MARK(recip(z0))) A__SQR(s(0)) -> c3 A__SQR(s(nil)) -> c3 A__SQR(s(0)) -> c3(A__ADD(0, a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), dbl(0)), A__DBL(mark(0)), MARK(0)) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__DBL(mark(nil)), MARK(nil)) A__SQR(s(x0)) -> c4(A__ADD(sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), dbl(mark(0))), A__DBL(mark(0)), MARK(0)) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), dbl(mark(nil))), A__DBL(mark(nil)), MARK(nil)) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(s(x0))) -> c3(A__ADD(s(a__add(a__sqr(mark(mark(x0))), a__dbl(mark(mark(x0))))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(s(a__terms(mark(z0)))), a__dbl(mark(s(terms(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(s(a__sqr(mark(z0)))), a__dbl(mark(s(sqr(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__add(mark(z0), mark(z1)))), a__dbl(mark(s(add(z0, z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(s(a__dbl(mark(z0)))), a__dbl(mark(s(dbl(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__first(mark(z0), mark(z1)))), a__dbl(mark(s(first(z0, z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(s(cons(mark(z0), z1))), a__dbl(mark(s(cons(z0, z1))))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(s(recip(mark(z0)))), a__dbl(mark(s(recip(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(s(s(mark(z0)))), a__dbl(mark(s(s(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(s(0)), a__dbl(mark(s(0)))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(s(nil)), a__dbl(mark(s(nil)))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), 0), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(nil)) -> c3(A__SQR(mark(nil))) A__SQR(s(terms(z0))) -> c3(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__SQR(s(s(z0))) -> c3(A__SQR(s(mark(z0))), MARK(s(z0))) A__SQR(s(cons(z0, z1))) -> c3(MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(MARK(recip(z0))) A__SQR(s(0)) -> c3 A__SQR(s(nil)) -> c3 A__SQR(s(0)) -> c3(A__ADD(0, a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), dbl(0)), A__DBL(mark(0)), MARK(0)) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__DBL(mark(nil)), MARK(nil)) A__SQR(s(x0)) -> c4(A__ADD(sqr(mark(x0)), dbl(mark(x0))), A__DBL(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), dbl(mark(0))), A__DBL(mark(0)), MARK(0)) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), dbl(mark(nil))), A__DBL(mark(nil)), MARK(nil)) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1, c3_3, c3_1, c3 ---------------------------------------- (261) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 5 trailing tuple parts ---------------------------------------- (262) Obligation: Complexity Dependency Tuples Problem Rules: a__terms(z0) -> cons(recip(a__sqr(mark(z0))), terms(s(z0))) a__terms(z0) -> terms(z0) a__sqr(0) -> 0 a__sqr(s(z0)) -> s(a__add(a__sqr(mark(z0)), a__dbl(mark(z0)))) a__sqr(z0) -> sqr(z0) a__dbl(0) -> 0 a__dbl(s(z0)) -> s(s(a__dbl(mark(z0)))) a__dbl(z0) -> dbl(z0) a__add(0, z0) -> mark(z0) a__add(s(z0), z1) -> s(a__add(mark(z0), mark(z1))) a__add(z0, z1) -> add(z0, z1) a__first(0, z0) -> nil a__first(s(z0), cons(z1, z2)) -> cons(mark(z1), first(z0, z2)) a__first(z0, z1) -> first(z0, z1) mark(terms(z0)) -> a__terms(mark(z0)) mark(sqr(z0)) -> a__sqr(mark(z0)) mark(add(z0, z1)) -> a__add(mark(z0), mark(z1)) mark(dbl(z0)) -> a__dbl(mark(z0)) mark(first(z0, z1)) -> a__first(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(recip(z0)) -> recip(mark(z0)) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(x0)) -> c3(A__SQR(mark(x0)), MARK(x0)) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(s(x0))) -> c3(A__ADD(s(a__add(a__sqr(mark(mark(x0))), a__dbl(mark(mark(x0))))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(s(a__terms(mark(z0)))), a__dbl(mark(s(terms(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(s(a__sqr(mark(z0)))), a__dbl(mark(s(sqr(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__add(mark(z0), mark(z1)))), a__dbl(mark(s(add(z0, z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(s(a__dbl(mark(z0)))), a__dbl(mark(s(dbl(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__first(mark(z0), mark(z1)))), a__dbl(mark(s(first(z0, z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(s(cons(mark(z0), z1))), a__dbl(mark(s(cons(z0, z1))))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(s(recip(mark(z0)))), a__dbl(mark(s(recip(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(s(s(mark(z0)))), a__dbl(mark(s(s(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(s(0)), a__dbl(mark(s(0)))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(s(nil)), a__dbl(mark(s(nil)))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), 0), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(nil)) -> c3(A__SQR(mark(nil))) A__SQR(s(terms(z0))) -> c3(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__SQR(s(s(z0))) -> c3(A__SQR(s(mark(z0))), MARK(s(z0))) A__SQR(s(cons(z0, z1))) -> c3(MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(MARK(recip(z0))) A__SQR(s(0)) -> c3 A__SQR(s(nil)) -> c3 A__SQR(s(0)) -> c3(A__ADD(0, a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__DBL(mark(nil))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), dbl(mark(nil))), A__DBL(mark(nil))) S tuples: A__ADD(0, z0) -> c9(MARK(z0)) A__FIRST(s(z0), cons(z1, z2)) -> c14(MARK(z1)) MARK(cons(z0, z1)) -> c23(MARK(z0)) MARK(recip(z0)) -> c24(MARK(z0)) MARK(s(z0)) -> c25(MARK(z0)) A__TERMS(s(z0)) -> c(A__SQR(s(mark(z0))), MARK(s(z0))) A__TERMS(cons(z0, z1)) -> c(MARK(cons(z0, z1))) A__TERMS(recip(z0)) -> c(MARK(recip(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), a__dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), a__dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), a__dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), a__dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), a__dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), a__dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), a__dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), a__dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), a__dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), a__dbl(nil)), A__DBL(mark(nil))) A__SQR(s(x0)) -> c4(A__DBL(mark(x0)), MARK(x0)) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), a__dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), a__dbl(mark(nil))), A__DBL(mark(nil))) A__DBL(s(terms(z0))) -> c7(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) A__DBL(s(sqr(z0))) -> c7(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) A__DBL(s(add(z0, z1))) -> c7(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__DBL(s(dbl(z0))) -> c7(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) A__DBL(s(first(z0, z1))) -> c7(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__DBL(s(s(z0))) -> c7(A__DBL(s(mark(z0))), MARK(s(z0))) A__DBL(s(cons(z0, z1))) -> c7(MARK(cons(z0, z1))) A__DBL(s(recip(z0))) -> c7(MARK(recip(z0))) A__ADD(s(x0), terms(z0)) -> c10(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) A__ADD(s(x0), sqr(z0)) -> c10(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) A__ADD(s(x0), add(z0, z1)) -> c10(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), dbl(z0)) -> c10(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) A__ADD(s(x0), first(z0, z1)) -> c10(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) A__ADD(s(x0), cons(z0, z1)) -> c10(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) A__ADD(s(x0), recip(z0)) -> c10(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) A__ADD(s(x0), s(z0)) -> c10(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) A__ADD(s(x0), 0) -> c10(A__ADD(mark(x0), 0), MARK(x0)) A__ADD(s(x0), nil) -> c10(A__ADD(mark(x0), nil), MARK(x0)) A__ADD(s(terms(z0)), x1) -> c10(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) A__ADD(s(sqr(z0)), x1) -> c10(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) A__ADD(s(add(z0, z1)), x1) -> c10(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) A__ADD(s(dbl(z0)), x1) -> c10(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) A__ADD(s(first(z0, z1)), x1) -> c10(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) A__ADD(s(s(z0)), x1) -> c10(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) A__ADD(s(cons(z0, z1)), x1) -> c10(MARK(cons(z0, z1))) A__ADD(s(recip(z0)), x1) -> c10(MARK(recip(z0))) A__ADD(s(0), x1) -> c10(A__ADD(0, mark(x1))) A__ADD(s(x0), terms(z0)) -> c11(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) A__ADD(s(x0), sqr(z0)) -> c11(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) A__ADD(s(x0), add(z0, z1)) -> c11(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__ADD(s(x0), dbl(z0)) -> c11(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) A__ADD(s(x0), first(z0, z1)) -> c11(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__ADD(s(x0), cons(z0, z1)) -> c11(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) A__ADD(s(x0), recip(z0)) -> c11(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) A__ADD(s(x0), s(z0)) -> c11(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) A__ADD(s(terms(z0)), x1) -> c11(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(sqr(z0)), x1) -> c11(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(add(z0, z1)), x1) -> c11(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(dbl(z0)), x1) -> c11(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(first(z0, z1)), x1) -> c11(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) A__ADD(s(s(z0)), x1) -> c11(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) A__ADD(s(0), x1) -> c11(A__ADD(0, mark(x1)), MARK(x1)) A__ADD(s(x0), 0) -> c11(A__ADD(mark(x0), 0)) A__ADD(s(x0), nil) -> c11(A__ADD(mark(x0), nil)) A__ADD(s(cons(z0, z1)), x1) -> c11(MARK(x1)) A__ADD(s(recip(z0)), x1) -> c11(MARK(x1)) A__ADD(s(nil), x1) -> c11(MARK(x1)) MARK(terms(terms(z0))) -> c16(A__TERMS(a__terms(mark(z0))), MARK(terms(z0))) MARK(terms(sqr(z0))) -> c16(A__TERMS(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(terms(add(z0, z1))) -> c16(A__TERMS(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(terms(dbl(z0))) -> c16(A__TERMS(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(terms(first(z0, z1))) -> c16(A__TERMS(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(terms(cons(z0, z1))) -> c16(A__TERMS(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(terms(recip(z0))) -> c16(A__TERMS(recip(mark(z0))), MARK(recip(z0))) MARK(terms(s(z0))) -> c16(A__TERMS(s(mark(z0))), MARK(s(z0))) MARK(sqr(terms(z0))) -> c17(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) MARK(sqr(sqr(z0))) -> c17(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(sqr(add(z0, z1))) -> c17(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(sqr(dbl(z0))) -> c17(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(sqr(first(z0, z1))) -> c17(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(sqr(s(z0))) -> c17(A__SQR(s(mark(z0))), MARK(s(z0))) MARK(sqr(cons(z0, z1))) -> c17(MARK(cons(z0, z1))) MARK(sqr(recip(z0))) -> c17(MARK(recip(z0))) MARK(add(x0, terms(z0))) -> c18(A__ADD(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(add(x0, sqr(z0))) -> c18(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(add(x0, add(z0, z1))) -> c18(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, dbl(z0))) -> c18(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(add(x0, first(z0, z1))) -> c18(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(add(x0, cons(z0, z1))) -> c18(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(add(x0, recip(z0))) -> c18(A__ADD(mark(x0), recip(mark(z0))), MARK(x0)) MARK(add(x0, s(z0))) -> c18(A__ADD(mark(x0), s(mark(z0))), MARK(x0)) MARK(add(x0, 0)) -> c18(A__ADD(mark(x0), 0), MARK(x0)) MARK(add(x0, nil)) -> c18(A__ADD(mark(x0), nil), MARK(x0)) MARK(add(terms(z0), x1)) -> c18(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(add(sqr(z0), x1)) -> c18(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(add(add(z0, z1), x1)) -> c18(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(add(dbl(z0), x1)) -> c18(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(add(first(z0, z1), x1)) -> c18(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(add(s(z0), x1)) -> c18(A__ADD(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(add(cons(z0, z1), x1)) -> c18(MARK(cons(z0, z1))) MARK(add(recip(z0), x1)) -> c18(MARK(recip(z0))) MARK(add(0, x1)) -> c18(A__ADD(0, mark(x1))) MARK(add(x0, terms(z0))) -> c19(A__ADD(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(add(x0, sqr(z0))) -> c19(A__ADD(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(add(x0, add(z0, z1))) -> c19(A__ADD(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(add(x0, dbl(z0))) -> c19(A__ADD(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(add(x0, first(z0, z1))) -> c19(A__ADD(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(add(x0, cons(z0, z1))) -> c19(A__ADD(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(add(x0, recip(z0))) -> c19(A__ADD(mark(x0), recip(mark(z0))), MARK(recip(z0))) MARK(add(x0, s(z0))) -> c19(A__ADD(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(add(terms(z0), x1)) -> c19(A__ADD(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(add(sqr(z0), x1)) -> c19(A__ADD(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(add(add(z0, z1), x1)) -> c19(A__ADD(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(dbl(z0), x1)) -> c19(A__ADD(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(add(first(z0, z1), x1)) -> c19(A__ADD(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(add(s(z0), x1)) -> c19(A__ADD(s(mark(z0)), mark(x1)), MARK(x1)) MARK(add(0, x1)) -> c19(A__ADD(0, mark(x1)), MARK(x1)) MARK(add(x0, 0)) -> c19(A__ADD(mark(x0), 0)) MARK(add(x0, nil)) -> c19(A__ADD(mark(x0), nil)) MARK(add(cons(z0, z1), x1)) -> c19(MARK(x1)) MARK(add(recip(z0), x1)) -> c19(MARK(x1)) MARK(add(nil, x1)) -> c19(MARK(x1)) MARK(dbl(terms(z0))) -> c20(A__DBL(a__terms(mark(z0))), MARK(terms(z0))) MARK(dbl(sqr(z0))) -> c20(A__DBL(a__sqr(mark(z0))), MARK(sqr(z0))) MARK(dbl(add(z0, z1))) -> c20(A__DBL(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(dbl(dbl(z0))) -> c20(A__DBL(a__dbl(mark(z0))), MARK(dbl(z0))) MARK(dbl(first(z0, z1))) -> c20(A__DBL(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(dbl(s(z0))) -> c20(A__DBL(s(mark(z0))), MARK(s(z0))) MARK(dbl(cons(z0, z1))) -> c20(MARK(cons(z0, z1))) MARK(dbl(recip(z0))) -> c20(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c21(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(x0)) MARK(first(x0, sqr(z0))) -> c21(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(x0)) MARK(first(x0, add(z0, z1))) -> c21(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, dbl(z0))) -> c21(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(x0)) MARK(first(x0, first(z0, z1))) -> c21(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(x0)) MARK(first(x0, cons(z0, z1))) -> c21(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(first(terms(z0), x1)) -> c21(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(terms(z0))) MARK(first(sqr(z0), x1)) -> c21(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(sqr(z0))) MARK(first(add(z0, z1), x1)) -> c21(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(add(z0, z1))) MARK(first(dbl(z0), x1)) -> c21(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(dbl(z0))) MARK(first(first(z0, z1), x1)) -> c21(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(first(z0, z1))) MARK(first(s(z0), x1)) -> c21(A__FIRST(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(first(x0, recip(z0))) -> c21(MARK(x0)) MARK(first(x0, s(z0))) -> c21(MARK(x0)) MARK(first(x0, 0)) -> c21(MARK(x0)) MARK(first(x0, nil)) -> c21(MARK(x0)) MARK(first(cons(z0, z1), x1)) -> c21(MARK(cons(z0, z1))) MARK(first(recip(z0), x1)) -> c21(MARK(recip(z0))) MARK(first(x0, terms(z0))) -> c22(A__FIRST(mark(x0), a__terms(mark(z0))), MARK(terms(z0))) MARK(first(x0, sqr(z0))) -> c22(A__FIRST(mark(x0), a__sqr(mark(z0))), MARK(sqr(z0))) MARK(first(x0, add(z0, z1))) -> c22(A__FIRST(mark(x0), a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) MARK(first(x0, dbl(z0))) -> c22(A__FIRST(mark(x0), a__dbl(mark(z0))), MARK(dbl(z0))) MARK(first(x0, first(z0, z1))) -> c22(A__FIRST(mark(x0), a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) MARK(first(x0, cons(z0, z1))) -> c22(A__FIRST(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(first(terms(z0), x1)) -> c22(A__FIRST(a__terms(mark(z0)), mark(x1)), MARK(x1)) MARK(first(sqr(z0), x1)) -> c22(A__FIRST(a__sqr(mark(z0)), mark(x1)), MARK(x1)) MARK(first(add(z0, z1), x1)) -> c22(A__FIRST(a__add(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(dbl(z0), x1)) -> c22(A__FIRST(a__dbl(mark(z0)), mark(x1)), MARK(x1)) MARK(first(first(z0, z1), x1)) -> c22(A__FIRST(a__first(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(first(s(z0), x1)) -> c22(A__FIRST(s(mark(z0)), mark(x1)), MARK(x1)) MARK(first(x0, recip(z0))) -> c22(MARK(recip(z0))) MARK(first(x0, s(z0))) -> c22(MARK(s(z0))) MARK(first(cons(z0, z1), x1)) -> c22(MARK(x1)) MARK(first(recip(z0), x1)) -> c22(MARK(x1)) MARK(first(0, x1)) -> c22(MARK(x1)) MARK(first(nil, x1)) -> c22(MARK(x1)) A__TERMS(terms(terms(z0))) -> c(A__SQR(a__terms(a__terms(mark(z0)))), MARK(terms(terms(z0)))) A__TERMS(terms(sqr(z0))) -> c(A__SQR(a__terms(a__sqr(mark(z0)))), MARK(terms(sqr(z0)))) A__TERMS(terms(add(z0, z1))) -> c(A__SQR(a__terms(a__add(mark(z0), mark(z1)))), MARK(terms(add(z0, z1)))) A__TERMS(terms(dbl(z0))) -> c(A__SQR(a__terms(a__dbl(mark(z0)))), MARK(terms(dbl(z0)))) A__TERMS(terms(first(z0, z1))) -> c(A__SQR(a__terms(a__first(mark(z0), mark(z1)))), MARK(terms(first(z0, z1)))) A__TERMS(terms(cons(z0, z1))) -> c(A__SQR(a__terms(cons(mark(z0), z1))), MARK(terms(cons(z0, z1)))) A__TERMS(terms(recip(z0))) -> c(A__SQR(a__terms(recip(mark(z0)))), MARK(terms(recip(z0)))) A__TERMS(terms(s(z0))) -> c(A__SQR(a__terms(s(mark(z0)))), MARK(terms(s(z0)))) A__TERMS(terms(x0)) -> c(MARK(terms(x0))) A__TERMS(terms(0)) -> c(A__SQR(a__terms(0))) A__TERMS(terms(nil)) -> c(A__SQR(a__terms(nil))) A__TERMS(sqr(terms(z0))) -> c(A__SQR(a__sqr(a__terms(mark(z0)))), MARK(sqr(terms(z0)))) A__TERMS(sqr(sqr(z0))) -> c(A__SQR(a__sqr(a__sqr(mark(z0)))), MARK(sqr(sqr(z0)))) A__TERMS(sqr(add(z0, z1))) -> c(A__SQR(a__sqr(a__add(mark(z0), mark(z1)))), MARK(sqr(add(z0, z1)))) A__TERMS(sqr(dbl(z0))) -> c(A__SQR(a__sqr(a__dbl(mark(z0)))), MARK(sqr(dbl(z0)))) A__TERMS(sqr(first(z0, z1))) -> c(A__SQR(a__sqr(a__first(mark(z0), mark(z1)))), MARK(sqr(first(z0, z1)))) A__TERMS(sqr(cons(z0, z1))) -> c(A__SQR(a__sqr(cons(mark(z0), z1))), MARK(sqr(cons(z0, z1)))) A__TERMS(sqr(recip(z0))) -> c(A__SQR(a__sqr(recip(mark(z0)))), MARK(sqr(recip(z0)))) A__TERMS(sqr(s(z0))) -> c(A__SQR(a__sqr(s(mark(z0)))), MARK(sqr(s(z0)))) A__TERMS(sqr(x0)) -> c(MARK(sqr(x0))) A__TERMS(sqr(0)) -> c(A__SQR(a__sqr(0))) A__TERMS(sqr(nil)) -> c(A__SQR(a__sqr(nil))) A__TERMS(add(x0, terms(z0))) -> c(A__SQR(a__add(mark(x0), a__terms(mark(z0)))), MARK(add(x0, terms(z0)))) A__TERMS(add(x0, sqr(z0))) -> c(A__SQR(a__add(mark(x0), a__sqr(mark(z0)))), MARK(add(x0, sqr(z0)))) A__TERMS(add(x0, add(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__add(mark(z0), mark(z1)))), MARK(add(x0, add(z0, z1)))) A__TERMS(add(x0, dbl(z0))) -> c(A__SQR(a__add(mark(x0), a__dbl(mark(z0)))), MARK(add(x0, dbl(z0)))) A__TERMS(add(x0, first(z0, z1))) -> c(A__SQR(a__add(mark(x0), a__first(mark(z0), mark(z1)))), MARK(add(x0, first(z0, z1)))) A__TERMS(add(x0, cons(z0, z1))) -> c(A__SQR(a__add(mark(x0), cons(mark(z0), z1))), MARK(add(x0, cons(z0, z1)))) A__TERMS(add(x0, recip(z0))) -> c(A__SQR(a__add(mark(x0), recip(mark(z0)))), MARK(add(x0, recip(z0)))) A__TERMS(add(x0, s(z0))) -> c(A__SQR(a__add(mark(x0), s(mark(z0)))), MARK(add(x0, s(z0)))) A__TERMS(add(x0, 0)) -> c(A__SQR(a__add(mark(x0), 0)), MARK(add(x0, 0))) A__TERMS(add(x0, nil)) -> c(A__SQR(a__add(mark(x0), nil)), MARK(add(x0, nil))) A__TERMS(add(terms(z0), x1)) -> c(A__SQR(a__add(a__terms(mark(z0)), mark(x1))), MARK(add(terms(z0), x1))) A__TERMS(add(sqr(z0), x1)) -> c(A__SQR(a__add(a__sqr(mark(z0)), mark(x1))), MARK(add(sqr(z0), x1))) A__TERMS(add(add(z0, z1), x1)) -> c(A__SQR(a__add(a__add(mark(z0), mark(z1)), mark(x1))), MARK(add(add(z0, z1), x1))) A__TERMS(add(dbl(z0), x1)) -> c(A__SQR(a__add(a__dbl(mark(z0)), mark(x1))), MARK(add(dbl(z0), x1))) A__TERMS(add(first(z0, z1), x1)) -> c(A__SQR(a__add(a__first(mark(z0), mark(z1)), mark(x1))), MARK(add(first(z0, z1), x1))) A__TERMS(add(cons(z0, z1), x1)) -> c(A__SQR(a__add(cons(mark(z0), z1), mark(x1))), MARK(add(cons(z0, z1), x1))) A__TERMS(add(recip(z0), x1)) -> c(A__SQR(a__add(recip(mark(z0)), mark(x1))), MARK(add(recip(z0), x1))) A__TERMS(add(s(z0), x1)) -> c(A__SQR(a__add(s(mark(z0)), mark(x1))), MARK(add(s(z0), x1))) A__TERMS(add(0, x1)) -> c(A__SQR(a__add(0, mark(x1))), MARK(add(0, x1))) A__TERMS(add(nil, x1)) -> c(A__SQR(a__add(nil, mark(x1))), MARK(add(nil, x1))) A__TERMS(add(x0, x1)) -> c(MARK(add(x0, x1))) A__TERMS(dbl(terms(z0))) -> c(A__SQR(a__dbl(a__terms(mark(z0)))), MARK(dbl(terms(z0)))) A__TERMS(dbl(sqr(z0))) -> c(A__SQR(a__dbl(a__sqr(mark(z0)))), MARK(dbl(sqr(z0)))) A__TERMS(dbl(add(z0, z1))) -> c(A__SQR(a__dbl(a__add(mark(z0), mark(z1)))), MARK(dbl(add(z0, z1)))) A__TERMS(dbl(dbl(z0))) -> c(A__SQR(a__dbl(a__dbl(mark(z0)))), MARK(dbl(dbl(z0)))) A__TERMS(dbl(first(z0, z1))) -> c(A__SQR(a__dbl(a__first(mark(z0), mark(z1)))), MARK(dbl(first(z0, z1)))) A__TERMS(dbl(cons(z0, z1))) -> c(A__SQR(a__dbl(cons(mark(z0), z1))), MARK(dbl(cons(z0, z1)))) A__TERMS(dbl(recip(z0))) -> c(A__SQR(a__dbl(recip(mark(z0)))), MARK(dbl(recip(z0)))) A__TERMS(dbl(s(z0))) -> c(A__SQR(a__dbl(s(mark(z0)))), MARK(dbl(s(z0)))) A__TERMS(dbl(x0)) -> c(MARK(dbl(x0))) A__TERMS(dbl(0)) -> c(A__SQR(a__dbl(0))) A__TERMS(dbl(nil)) -> c(A__SQR(a__dbl(nil))) A__TERMS(first(x0, terms(z0))) -> c(A__SQR(a__first(mark(x0), a__terms(mark(z0)))), MARK(first(x0, terms(z0)))) A__TERMS(first(x0, sqr(z0))) -> c(A__SQR(a__first(mark(x0), a__sqr(mark(z0)))), MARK(first(x0, sqr(z0)))) A__TERMS(first(x0, add(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__add(mark(z0), mark(z1)))), MARK(first(x0, add(z0, z1)))) A__TERMS(first(x0, dbl(z0))) -> c(A__SQR(a__first(mark(x0), a__dbl(mark(z0)))), MARK(first(x0, dbl(z0)))) A__TERMS(first(x0, first(z0, z1))) -> c(A__SQR(a__first(mark(x0), a__first(mark(z0), mark(z1)))), MARK(first(x0, first(z0, z1)))) A__TERMS(first(x0, cons(z0, z1))) -> c(A__SQR(a__first(mark(x0), cons(mark(z0), z1))), MARK(first(x0, cons(z0, z1)))) A__TERMS(first(x0, recip(z0))) -> c(A__SQR(a__first(mark(x0), recip(mark(z0)))), MARK(first(x0, recip(z0)))) A__TERMS(first(x0, s(z0))) -> c(A__SQR(a__first(mark(x0), s(mark(z0)))), MARK(first(x0, s(z0)))) A__TERMS(first(x0, 0)) -> c(A__SQR(a__first(mark(x0), 0)), MARK(first(x0, 0))) A__TERMS(first(x0, nil)) -> c(A__SQR(a__first(mark(x0), nil)), MARK(first(x0, nil))) A__TERMS(first(terms(z0), x1)) -> c(A__SQR(a__first(a__terms(mark(z0)), mark(x1))), MARK(first(terms(z0), x1))) A__TERMS(first(sqr(z0), x1)) -> c(A__SQR(a__first(a__sqr(mark(z0)), mark(x1))), MARK(first(sqr(z0), x1))) A__TERMS(first(add(z0, z1), x1)) -> c(A__SQR(a__first(a__add(mark(z0), mark(z1)), mark(x1))), MARK(first(add(z0, z1), x1))) A__TERMS(first(dbl(z0), x1)) -> c(A__SQR(a__first(a__dbl(mark(z0)), mark(x1))), MARK(first(dbl(z0), x1))) A__TERMS(first(first(z0, z1), x1)) -> c(A__SQR(a__first(a__first(mark(z0), mark(z1)), mark(x1))), MARK(first(first(z0, z1), x1))) A__TERMS(first(cons(z0, z1), x1)) -> c(A__SQR(a__first(cons(mark(z0), z1), mark(x1))), MARK(first(cons(z0, z1), x1))) A__TERMS(first(recip(z0), x1)) -> c(A__SQR(a__first(recip(mark(z0)), mark(x1))), MARK(first(recip(z0), x1))) A__TERMS(first(s(z0), x1)) -> c(A__SQR(a__first(s(mark(z0)), mark(x1))), MARK(first(s(z0), x1))) A__TERMS(first(0, x1)) -> c(A__SQR(a__first(0, mark(x1))), MARK(first(0, x1))) A__TERMS(first(nil, x1)) -> c(A__SQR(a__first(nil, mark(x1))), MARK(first(nil, x1))) A__TERMS(first(x0, x1)) -> c(MARK(first(x0, x1))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), dbl(0)), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__SQR(mark(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), dbl(mark(nil))), A__SQR(mark(nil))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0)))))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(mark(terms(x0))), a__dbl(terms(mark(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(mark(terms(terms(z0)))), a__dbl(a__terms(a__terms(mark(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(terms(sqr(z0)))), a__dbl(a__terms(a__sqr(mark(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(add(z0, z1)))), a__dbl(a__terms(a__add(mark(z0), mark(z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(terms(dbl(z0)))), a__dbl(a__terms(a__dbl(mark(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(first(z0, z1)))), a__dbl(a__terms(a__first(mark(z0), mark(z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(terms(cons(z0, z1)))), a__dbl(a__terms(cons(mark(z0), z1)))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(mark(terms(recip(z0)))), a__dbl(a__terms(recip(mark(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(mark(terms(s(z0)))), a__dbl(a__terms(s(mark(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(z0))) -> c3(A__ADD(a__sqr(a__terms(mark(z0))), a__dbl(a__terms(mark(z0)))), A__SQR(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(mark(terms(0))), a__dbl(a__terms(0))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(mark(terms(nil))), a__dbl(a__terms(nil))), A__SQR(mark(terms(nil)))) A__SQR(s(terms(x0))) -> c3(A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(mark(sqr(x0))), a__dbl(sqr(mark(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(sqr(z0)))), a__dbl(a__sqr(a__sqr(mark(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(terms(z0)))), a__dbl(a__sqr(a__terms(mark(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(add(z0, z1)))), a__dbl(a__sqr(a__add(mark(z0), mark(z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(dbl(z0)))), a__dbl(a__sqr(a__dbl(mark(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(first(z0, z1)))), a__dbl(a__sqr(a__first(mark(z0), mark(z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(sqr(cons(z0, z1)))), a__dbl(a__sqr(cons(mark(z0), z1)))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(recip(z0)))), a__dbl(a__sqr(recip(mark(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(mark(sqr(s(z0)))), a__dbl(a__sqr(s(mark(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(z0))) -> c3(A__ADD(a__sqr(a__sqr(mark(z0))), a__dbl(a__sqr(mark(z0)))), A__SQR(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(mark(sqr(0))), a__dbl(a__sqr(0))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(mark(sqr(nil))), a__dbl(a__sqr(nil))), A__SQR(mark(sqr(nil)))) A__SQR(s(sqr(x0))) -> c3(A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(mark(add(x0, x1))), a__dbl(add(mark(x0), mark(x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, add(z0, z1)))), a__dbl(a__add(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, terms(z0)))), a__dbl(a__add(mark(x0), a__terms(mark(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, sqr(z0)))), a__dbl(a__add(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, dbl(z0)))), a__dbl(a__add(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, first(z0, z1)))), a__dbl(a__add(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(add(x0, cons(z0, z1)))), a__dbl(a__add(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, recip(z0)))), a__dbl(a__add(mark(x0), recip(mark(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(add(x0, s(z0)))), a__dbl(a__add(mark(x0), s(mark(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(mark(add(x0, 0))), a__dbl(a__add(mark(x0), 0))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(mark(add(x0, nil))), a__dbl(a__add(mark(x0), nil))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(add(z0, z1), x1))), a__dbl(a__add(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(terms(z0), x1))), a__dbl(a__add(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(sqr(z0), x1))), a__dbl(a__add(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(dbl(z0), x1))), a__dbl(a__add(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(first(z0, z1), x1))), a__dbl(a__add(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(add(cons(z0, z1), x1))), a__dbl(a__add(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(recip(z0), x1))), a__dbl(a__add(recip(mark(z0)), mark(x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(add(s(z0), x1))), a__dbl(a__add(s(mark(z0)), mark(x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(mark(add(0, x1))), a__dbl(a__add(0, mark(x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(mark(add(nil, x1))), a__dbl(a__add(nil, mark(x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(add(z0, z1))) -> c3(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), a__dbl(a__add(mark(z0), mark(z1)))), A__SQR(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(add(x0, x1))) -> c3(A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(mark(dbl(x0))), a__dbl(dbl(mark(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(dbl(z0)))), a__dbl(a__dbl(a__dbl(mark(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(terms(z0)))), a__dbl(a__dbl(a__terms(mark(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(sqr(z0)))), a__dbl(a__dbl(a__sqr(mark(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(add(z0, z1)))), a__dbl(a__dbl(a__add(mark(z0), mark(z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(first(z0, z1)))), a__dbl(a__dbl(a__first(mark(z0), mark(z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(dbl(cons(z0, z1)))), a__dbl(a__dbl(cons(mark(z0), z1)))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(recip(z0)))), a__dbl(a__dbl(recip(mark(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(mark(dbl(s(z0)))), a__dbl(a__dbl(s(mark(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(z0))) -> c3(A__ADD(a__sqr(a__dbl(mark(z0))), a__dbl(a__dbl(mark(z0)))), A__SQR(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(mark(dbl(0))), a__dbl(a__dbl(0))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(mark(dbl(nil))), a__dbl(a__dbl(nil))), A__SQR(mark(dbl(nil)))) A__SQR(s(dbl(x0))) -> c3(A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(mark(first(x0, x1))), a__dbl(first(mark(x0), mark(x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, first(z0, z1)))), a__dbl(a__first(mark(x0), a__first(mark(z0), mark(z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, terms(z0)))), a__dbl(a__first(mark(x0), a__terms(mark(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, sqr(z0)))), a__dbl(a__first(mark(x0), a__sqr(mark(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, add(z0, z1)))), a__dbl(a__first(mark(x0), a__add(mark(z0), mark(z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, dbl(z0)))), a__dbl(a__first(mark(x0), a__dbl(mark(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(first(x0, cons(z0, z1)))), a__dbl(a__first(mark(x0), cons(mark(z0), z1)))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, recip(z0)))), a__dbl(a__first(mark(x0), recip(mark(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(mark(first(x0, s(z0)))), a__dbl(a__first(mark(x0), s(mark(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(mark(first(x0, 0))), a__dbl(a__first(mark(x0), 0))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(mark(first(x0, nil))), a__dbl(a__first(mark(x0), nil))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(first(z0, z1), x1))), a__dbl(a__first(a__first(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(terms(z0), x1))), a__dbl(a__first(a__terms(mark(z0)), mark(x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(sqr(z0), x1))), a__dbl(a__first(a__sqr(mark(z0)), mark(x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(add(z0, z1), x1))), a__dbl(a__first(a__add(mark(z0), mark(z1)), mark(x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(dbl(z0), x1))), a__dbl(a__first(a__dbl(mark(z0)), mark(x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(first(cons(z0, z1), x1))), a__dbl(a__first(cons(mark(z0), z1), mark(x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(recip(z0), x1))), a__dbl(a__first(recip(mark(z0)), mark(x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(first(s(z0), x1))), a__dbl(a__first(s(mark(z0)), mark(x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(mark(first(0, x1))), a__dbl(a__first(0, mark(x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(mark(first(nil, x1))), a__dbl(a__first(nil, mark(x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(first(z0, z1))) -> c3(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), a__dbl(a__first(mark(z0), mark(z1)))), A__SQR(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(first(x0, x1))) -> c3(A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(cons(z0, z1), x1))), a__dbl(cons(cons(mark(z0), z1), x1))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(terms(z0), x1))), a__dbl(cons(a__terms(mark(z0)), x1))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(sqr(z0), x1))), a__dbl(cons(a__sqr(mark(z0)), x1))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(add(z0, z1), x1))), a__dbl(cons(a__add(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(dbl(z0), x1))), a__dbl(cons(a__dbl(mark(z0)), x1))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(mark(cons(first(z0, z1), x1))), a__dbl(cons(a__first(mark(z0), mark(z1)), x1))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(recip(z0), x1))), a__dbl(cons(recip(mark(z0)), x1))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(mark(cons(s(z0), x1))), a__dbl(cons(s(mark(z0)), x1))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(mark(cons(0, x1))), a__dbl(cons(0, x1))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(mark(cons(nil, x1))), a__dbl(cons(nil, x1))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(cons(z0, z1))) -> c3(A__ADD(a__sqr(cons(mark(z0), z1)), a__dbl(cons(mark(z0), z1))), A__SQR(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(cons(x0, x1))) -> c3(A__SQR(mark(cons(x0, x1))), MARK(cons(x0, x1))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(mark(recip(recip(z0)))), a__dbl(recip(recip(mark(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(mark(recip(terms(z0)))), a__dbl(recip(a__terms(mark(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(recip(sqr(z0)))), a__dbl(recip(a__sqr(mark(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(add(z0, z1)))), a__dbl(recip(a__add(mark(z0), mark(z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(recip(dbl(z0)))), a__dbl(recip(a__dbl(mark(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(first(z0, z1)))), a__dbl(recip(a__first(mark(z0), mark(z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(recip(cons(z0, z1)))), a__dbl(recip(cons(mark(z0), z1)))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(mark(recip(s(z0)))), a__dbl(recip(s(mark(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(mark(recip(0))), a__dbl(recip(0))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(mark(recip(nil))), a__dbl(recip(nil))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(recip(z0))) -> c3(A__ADD(a__sqr(recip(mark(z0))), a__dbl(recip(mark(z0)))), A__SQR(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(recip(x0))) -> c3(A__SQR(mark(recip(x0))), MARK(recip(x0))) A__SQR(s(s(x0))) -> c3(A__ADD(a__sqr(mark(s(x0))), s(s(a__dbl(mark(mark(x0)))))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(mark(s(s(z0)))), a__dbl(s(s(mark(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(mark(s(terms(z0)))), a__dbl(s(a__terms(mark(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(mark(s(sqr(z0)))), a__dbl(s(a__sqr(mark(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(add(z0, z1)))), a__dbl(s(a__add(mark(z0), mark(z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(mark(s(dbl(z0)))), a__dbl(s(a__dbl(mark(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(first(z0, z1)))), a__dbl(s(a__first(mark(z0), mark(z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(mark(s(cons(z0, z1)))), a__dbl(s(cons(mark(z0), z1)))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(mark(s(recip(z0)))), a__dbl(s(recip(mark(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(mark(s(0))), a__dbl(s(0))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(mark(s(nil))), a__dbl(s(nil))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(s(z0))) -> c3(A__ADD(a__sqr(s(mark(z0))), a__dbl(s(mark(z0)))), A__SQR(mark(s(z0))), MARK(s(z0))) A__SQR(s(s(x0))) -> c3(A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(cons(recip(a__sqr(mark(mark(x0)))), terms(s(mark(x0))))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(x0))) -> c3(A__ADD(a__sqr(terms(mark(x0))), a__dbl(mark(terms(x0)))), A__SQR(mark(terms(x0))), MARK(terms(x0))) A__SQR(s(terms(terms(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__terms(mark(z0)))), a__dbl(mark(terms(terms(z0))))), A__SQR(mark(terms(terms(z0)))), MARK(terms(terms(z0)))) A__SQR(s(terms(sqr(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__sqr(mark(z0)))), a__dbl(mark(terms(sqr(z0))))), A__SQR(mark(terms(sqr(z0)))), MARK(terms(sqr(z0)))) A__SQR(s(terms(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__add(mark(z0), mark(z1)))), a__dbl(mark(terms(add(z0, z1))))), A__SQR(mark(terms(add(z0, z1)))), MARK(terms(add(z0, z1)))) A__SQR(s(terms(dbl(z0)))) -> c3(A__ADD(a__sqr(a__terms(a__dbl(mark(z0)))), a__dbl(mark(terms(dbl(z0))))), A__SQR(mark(terms(dbl(z0)))), MARK(terms(dbl(z0)))) A__SQR(s(terms(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(a__first(mark(z0), mark(z1)))), a__dbl(mark(terms(first(z0, z1))))), A__SQR(mark(terms(first(z0, z1)))), MARK(terms(first(z0, z1)))) A__SQR(s(terms(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__terms(cons(mark(z0), z1))), a__dbl(mark(terms(cons(z0, z1))))), A__SQR(mark(terms(cons(z0, z1)))), MARK(terms(cons(z0, z1)))) A__SQR(s(terms(recip(z0)))) -> c3(A__ADD(a__sqr(a__terms(recip(mark(z0)))), a__dbl(mark(terms(recip(z0))))), A__SQR(mark(terms(recip(z0)))), MARK(terms(recip(z0)))) A__SQR(s(terms(s(z0)))) -> c3(A__ADD(a__sqr(a__terms(s(mark(z0)))), a__dbl(mark(terms(s(z0))))), A__SQR(mark(terms(s(z0)))), MARK(terms(s(z0)))) A__SQR(s(terms(0))) -> c3(A__ADD(a__sqr(a__terms(0)), a__dbl(mark(terms(0)))), A__SQR(mark(terms(0)))) A__SQR(s(terms(nil))) -> c3(A__ADD(a__sqr(a__terms(nil)), a__dbl(mark(terms(nil)))), A__SQR(mark(terms(nil)))) A__SQR(s(sqr(x0))) -> c3(A__ADD(a__sqr(sqr(mark(x0))), a__dbl(mark(sqr(x0)))), A__SQR(mark(sqr(x0))), MARK(sqr(x0))) A__SQR(s(sqr(terms(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__terms(mark(z0)))), a__dbl(mark(sqr(terms(z0))))), A__SQR(mark(sqr(terms(z0)))), MARK(sqr(terms(z0)))) A__SQR(s(sqr(sqr(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__sqr(mark(z0)))), a__dbl(mark(sqr(sqr(z0))))), A__SQR(mark(sqr(sqr(z0)))), MARK(sqr(sqr(z0)))) A__SQR(s(sqr(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__add(mark(z0), mark(z1)))), a__dbl(mark(sqr(add(z0, z1))))), A__SQR(mark(sqr(add(z0, z1)))), MARK(sqr(add(z0, z1)))) A__SQR(s(sqr(dbl(z0)))) -> c3(A__ADD(a__sqr(a__sqr(a__dbl(mark(z0)))), a__dbl(mark(sqr(dbl(z0))))), A__SQR(mark(sqr(dbl(z0)))), MARK(sqr(dbl(z0)))) A__SQR(s(sqr(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(a__first(mark(z0), mark(z1)))), a__dbl(mark(sqr(first(z0, z1))))), A__SQR(mark(sqr(first(z0, z1)))), MARK(sqr(first(z0, z1)))) A__SQR(s(sqr(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__sqr(cons(mark(z0), z1))), a__dbl(mark(sqr(cons(z0, z1))))), A__SQR(mark(sqr(cons(z0, z1)))), MARK(sqr(cons(z0, z1)))) A__SQR(s(sqr(recip(z0)))) -> c3(A__ADD(a__sqr(a__sqr(recip(mark(z0)))), a__dbl(mark(sqr(recip(z0))))), A__SQR(mark(sqr(recip(z0)))), MARK(sqr(recip(z0)))) A__SQR(s(sqr(s(z0)))) -> c3(A__ADD(a__sqr(a__sqr(s(mark(z0)))), a__dbl(mark(sqr(s(z0))))), A__SQR(mark(sqr(s(z0)))), MARK(sqr(s(z0)))) A__SQR(s(sqr(0))) -> c3(A__ADD(a__sqr(a__sqr(0)), a__dbl(mark(sqr(0)))), A__SQR(mark(sqr(0)))) A__SQR(s(sqr(nil))) -> c3(A__ADD(a__sqr(a__sqr(nil)), a__dbl(mark(sqr(nil)))), A__SQR(mark(sqr(nil)))) A__SQR(s(add(x0, x1))) -> c3(A__ADD(a__sqr(add(mark(x0), mark(x1))), a__dbl(mark(add(x0, x1)))), A__SQR(mark(add(x0, x1))), MARK(add(x0, x1))) A__SQR(s(add(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__terms(mark(z0)))), a__dbl(mark(add(x0, terms(z0))))), A__SQR(mark(add(x0, terms(z0)))), MARK(add(x0, terms(z0)))) A__SQR(s(add(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(add(x0, sqr(z0))))), A__SQR(mark(add(x0, sqr(z0)))), MARK(add(x0, sqr(z0)))) A__SQR(s(add(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(add(x0, add(z0, z1))))), A__SQR(mark(add(x0, add(z0, z1)))), MARK(add(x0, add(z0, z1)))) A__SQR(s(add(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(add(x0, dbl(z0))))), A__SQR(mark(add(x0, dbl(z0)))), MARK(add(x0, dbl(z0)))) A__SQR(s(add(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(add(x0, first(z0, z1))))), A__SQR(mark(add(x0, first(z0, z1)))), MARK(add(x0, first(z0, z1)))) A__SQR(s(add(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), cons(mark(z0), z1))), a__dbl(mark(add(x0, cons(z0, z1))))), A__SQR(mark(add(x0, cons(z0, z1)))), MARK(add(x0, cons(z0, z1)))) A__SQR(s(add(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), recip(mark(z0)))), a__dbl(mark(add(x0, recip(z0))))), A__SQR(mark(add(x0, recip(z0)))), MARK(add(x0, recip(z0)))) A__SQR(s(add(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__add(mark(x0), s(mark(z0)))), a__dbl(mark(add(x0, s(z0))))), A__SQR(mark(add(x0, s(z0)))), MARK(add(x0, s(z0)))) A__SQR(s(add(x0, 0))) -> c3(A__ADD(a__sqr(a__add(mark(x0), 0)), a__dbl(mark(add(x0, 0)))), A__SQR(mark(add(x0, 0))), MARK(add(x0, 0))) A__SQR(s(add(x0, nil))) -> c3(A__ADD(a__sqr(a__add(mark(x0), nil)), a__dbl(mark(add(x0, nil)))), A__SQR(mark(add(x0, nil))), MARK(add(x0, nil))) A__SQR(s(add(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__terms(mark(z0)), mark(x1))), a__dbl(mark(add(terms(z0), x1)))), A__SQR(mark(add(terms(z0), x1))), MARK(add(terms(z0), x1))) A__SQR(s(add(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(add(sqr(z0), x1)))), A__SQR(mark(add(sqr(z0), x1))), MARK(add(sqr(z0), x1))) A__SQR(s(add(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(add(z0, z1), x1)))), A__SQR(mark(add(add(z0, z1), x1))), MARK(add(add(z0, z1), x1))) A__SQR(s(add(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__add(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(add(dbl(z0), x1)))), A__SQR(mark(add(dbl(z0), x1))), MARK(add(dbl(z0), x1))) A__SQR(s(add(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(add(first(z0, z1), x1)))), A__SQR(mark(add(first(z0, z1), x1))), MARK(add(first(z0, z1), x1))) A__SQR(s(add(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__add(cons(mark(z0), z1), mark(x1))), a__dbl(mark(add(cons(z0, z1), x1)))), A__SQR(mark(add(cons(z0, z1), x1))), MARK(add(cons(z0, z1), x1))) A__SQR(s(add(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__add(recip(mark(z0)), mark(x1))), a__dbl(mark(add(recip(z0), x1)))), A__SQR(mark(add(recip(z0), x1))), MARK(add(recip(z0), x1))) A__SQR(s(add(s(z0), x1))) -> c3(A__ADD(a__sqr(a__add(s(mark(z0)), mark(x1))), a__dbl(mark(add(s(z0), x1)))), A__SQR(mark(add(s(z0), x1))), MARK(add(s(z0), x1))) A__SQR(s(add(0, x1))) -> c3(A__ADD(a__sqr(a__add(0, mark(x1))), a__dbl(mark(add(0, x1)))), A__SQR(mark(add(0, x1))), MARK(add(0, x1))) A__SQR(s(add(nil, x1))) -> c3(A__ADD(a__sqr(a__add(nil, mark(x1))), a__dbl(mark(add(nil, x1)))), A__SQR(mark(add(nil, x1))), MARK(add(nil, x1))) A__SQR(s(dbl(x0))) -> c3(A__ADD(a__sqr(dbl(mark(x0))), a__dbl(mark(dbl(x0)))), A__SQR(mark(dbl(x0))), MARK(dbl(x0))) A__SQR(s(dbl(terms(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__terms(mark(z0)))), a__dbl(mark(dbl(terms(z0))))), A__SQR(mark(dbl(terms(z0)))), MARK(dbl(terms(z0)))) A__SQR(s(dbl(sqr(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__sqr(mark(z0)))), a__dbl(mark(dbl(sqr(z0))))), A__SQR(mark(dbl(sqr(z0)))), MARK(dbl(sqr(z0)))) A__SQR(s(dbl(add(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__add(mark(z0), mark(z1)))), a__dbl(mark(dbl(add(z0, z1))))), A__SQR(mark(dbl(add(z0, z1)))), MARK(dbl(add(z0, z1)))) A__SQR(s(dbl(dbl(z0)))) -> c3(A__ADD(a__sqr(a__dbl(a__dbl(mark(z0)))), a__dbl(mark(dbl(dbl(z0))))), A__SQR(mark(dbl(dbl(z0)))), MARK(dbl(dbl(z0)))) A__SQR(s(dbl(first(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(a__first(mark(z0), mark(z1)))), a__dbl(mark(dbl(first(z0, z1))))), A__SQR(mark(dbl(first(z0, z1)))), MARK(dbl(first(z0, z1)))) A__SQR(s(dbl(cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__dbl(cons(mark(z0), z1))), a__dbl(mark(dbl(cons(z0, z1))))), A__SQR(mark(dbl(cons(z0, z1)))), MARK(dbl(cons(z0, z1)))) A__SQR(s(dbl(recip(z0)))) -> c3(A__ADD(a__sqr(a__dbl(recip(mark(z0)))), a__dbl(mark(dbl(recip(z0))))), A__SQR(mark(dbl(recip(z0)))), MARK(dbl(recip(z0)))) A__SQR(s(dbl(s(z0)))) -> c3(A__ADD(a__sqr(a__dbl(s(mark(z0)))), a__dbl(mark(dbl(s(z0))))), A__SQR(mark(dbl(s(z0)))), MARK(dbl(s(z0)))) A__SQR(s(dbl(0))) -> c3(A__ADD(a__sqr(a__dbl(0)), a__dbl(mark(dbl(0)))), A__SQR(mark(dbl(0)))) A__SQR(s(dbl(nil))) -> c3(A__ADD(a__sqr(a__dbl(nil)), a__dbl(mark(dbl(nil)))), A__SQR(mark(dbl(nil)))) A__SQR(s(first(x0, x1))) -> c3(A__ADD(a__sqr(first(mark(x0), mark(x1))), a__dbl(mark(first(x0, x1)))), A__SQR(mark(first(x0, x1))), MARK(first(x0, x1))) A__SQR(s(first(x0, terms(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__terms(mark(z0)))), a__dbl(mark(first(x0, terms(z0))))), A__SQR(mark(first(x0, terms(z0)))), MARK(first(x0, terms(z0)))) A__SQR(s(first(x0, sqr(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__sqr(mark(z0)))), a__dbl(mark(first(x0, sqr(z0))))), A__SQR(mark(first(x0, sqr(z0)))), MARK(first(x0, sqr(z0)))) A__SQR(s(first(x0, add(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__add(mark(z0), mark(z1)))), a__dbl(mark(first(x0, add(z0, z1))))), A__SQR(mark(first(x0, add(z0, z1)))), MARK(first(x0, add(z0, z1)))) A__SQR(s(first(x0, dbl(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__dbl(mark(z0)))), a__dbl(mark(first(x0, dbl(z0))))), A__SQR(mark(first(x0, dbl(z0)))), MARK(first(x0, dbl(z0)))) A__SQR(s(first(x0, first(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), a__first(mark(z0), mark(z1)))), a__dbl(mark(first(x0, first(z0, z1))))), A__SQR(mark(first(x0, first(z0, z1)))), MARK(first(x0, first(z0, z1)))) A__SQR(s(first(x0, cons(z0, z1)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), cons(mark(z0), z1))), a__dbl(mark(first(x0, cons(z0, z1))))), A__SQR(mark(first(x0, cons(z0, z1)))), MARK(first(x0, cons(z0, z1)))) A__SQR(s(first(x0, recip(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), recip(mark(z0)))), a__dbl(mark(first(x0, recip(z0))))), A__SQR(mark(first(x0, recip(z0)))), MARK(first(x0, recip(z0)))) A__SQR(s(first(x0, s(z0)))) -> c3(A__ADD(a__sqr(a__first(mark(x0), s(mark(z0)))), a__dbl(mark(first(x0, s(z0))))), A__SQR(mark(first(x0, s(z0)))), MARK(first(x0, s(z0)))) A__SQR(s(first(x0, 0))) -> c3(A__ADD(a__sqr(a__first(mark(x0), 0)), a__dbl(mark(first(x0, 0)))), A__SQR(mark(first(x0, 0))), MARK(first(x0, 0))) A__SQR(s(first(x0, nil))) -> c3(A__ADD(a__sqr(a__first(mark(x0), nil)), a__dbl(mark(first(x0, nil)))), A__SQR(mark(first(x0, nil))), MARK(first(x0, nil))) A__SQR(s(first(terms(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__terms(mark(z0)), mark(x1))), a__dbl(mark(first(terms(z0), x1)))), A__SQR(mark(first(terms(z0), x1))), MARK(first(terms(z0), x1))) A__SQR(s(first(sqr(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__sqr(mark(z0)), mark(x1))), a__dbl(mark(first(sqr(z0), x1)))), A__SQR(mark(first(sqr(z0), x1))), MARK(first(sqr(z0), x1))) A__SQR(s(first(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__add(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(add(z0, z1), x1)))), A__SQR(mark(first(add(z0, z1), x1))), MARK(first(add(z0, z1), x1))) A__SQR(s(first(dbl(z0), x1))) -> c3(A__ADD(a__sqr(a__first(a__dbl(mark(z0)), mark(x1))), a__dbl(mark(first(dbl(z0), x1)))), A__SQR(mark(first(dbl(z0), x1))), MARK(first(dbl(z0), x1))) A__SQR(s(first(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(a__first(mark(z0), mark(z1)), mark(x1))), a__dbl(mark(first(first(z0, z1), x1)))), A__SQR(mark(first(first(z0, z1), x1))), MARK(first(first(z0, z1), x1))) A__SQR(s(first(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(a__first(cons(mark(z0), z1), mark(x1))), a__dbl(mark(first(cons(z0, z1), x1)))), A__SQR(mark(first(cons(z0, z1), x1))), MARK(first(cons(z0, z1), x1))) A__SQR(s(first(recip(z0), x1))) -> c3(A__ADD(a__sqr(a__first(recip(mark(z0)), mark(x1))), a__dbl(mark(first(recip(z0), x1)))), A__SQR(mark(first(recip(z0), x1))), MARK(first(recip(z0), x1))) A__SQR(s(first(s(z0), x1))) -> c3(A__ADD(a__sqr(a__first(s(mark(z0)), mark(x1))), a__dbl(mark(first(s(z0), x1)))), A__SQR(mark(first(s(z0), x1))), MARK(first(s(z0), x1))) A__SQR(s(first(0, x1))) -> c3(A__ADD(a__sqr(a__first(0, mark(x1))), a__dbl(mark(first(0, x1)))), A__SQR(mark(first(0, x1))), MARK(first(0, x1))) A__SQR(s(first(nil, x1))) -> c3(A__ADD(a__sqr(a__first(nil, mark(x1))), a__dbl(mark(first(nil, x1)))), A__SQR(mark(first(nil, x1))), MARK(first(nil, x1))) A__SQR(s(cons(terms(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__terms(mark(z0)), x1)), a__dbl(mark(cons(terms(z0), x1)))), A__SQR(mark(cons(terms(z0), x1))), MARK(cons(terms(z0), x1))) A__SQR(s(cons(sqr(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__sqr(mark(z0)), x1)), a__dbl(mark(cons(sqr(z0), x1)))), A__SQR(mark(cons(sqr(z0), x1))), MARK(cons(sqr(z0), x1))) A__SQR(s(cons(add(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__add(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(add(z0, z1), x1)))), A__SQR(mark(cons(add(z0, z1), x1))), MARK(cons(add(z0, z1), x1))) A__SQR(s(cons(dbl(z0), x1))) -> c3(A__ADD(a__sqr(cons(a__dbl(mark(z0)), x1)), a__dbl(mark(cons(dbl(z0), x1)))), A__SQR(mark(cons(dbl(z0), x1))), MARK(cons(dbl(z0), x1))) A__SQR(s(cons(first(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(a__first(mark(z0), mark(z1)), x1)), a__dbl(mark(cons(first(z0, z1), x1)))), A__SQR(mark(cons(first(z0, z1), x1))), MARK(cons(first(z0, z1), x1))) A__SQR(s(cons(cons(z0, z1), x1))) -> c3(A__ADD(a__sqr(cons(cons(mark(z0), z1), x1)), a__dbl(mark(cons(cons(z0, z1), x1)))), A__SQR(mark(cons(cons(z0, z1), x1))), MARK(cons(cons(z0, z1), x1))) A__SQR(s(cons(recip(z0), x1))) -> c3(A__ADD(a__sqr(cons(recip(mark(z0)), x1)), a__dbl(mark(cons(recip(z0), x1)))), A__SQR(mark(cons(recip(z0), x1))), MARK(cons(recip(z0), x1))) A__SQR(s(cons(s(z0), x1))) -> c3(A__ADD(a__sqr(cons(s(mark(z0)), x1)), a__dbl(mark(cons(s(z0), x1)))), A__SQR(mark(cons(s(z0), x1))), MARK(cons(s(z0), x1))) A__SQR(s(cons(0, x1))) -> c3(A__ADD(a__sqr(cons(0, x1)), a__dbl(mark(cons(0, x1)))), A__SQR(mark(cons(0, x1))), MARK(cons(0, x1))) A__SQR(s(cons(nil, x1))) -> c3(A__ADD(a__sqr(cons(nil, x1)), a__dbl(mark(cons(nil, x1)))), A__SQR(mark(cons(nil, x1))), MARK(cons(nil, x1))) A__SQR(s(recip(terms(z0)))) -> c3(A__ADD(a__sqr(recip(a__terms(mark(z0)))), a__dbl(mark(recip(terms(z0))))), A__SQR(mark(recip(terms(z0)))), MARK(recip(terms(z0)))) A__SQR(s(recip(sqr(z0)))) -> c3(A__ADD(a__sqr(recip(a__sqr(mark(z0)))), a__dbl(mark(recip(sqr(z0))))), A__SQR(mark(recip(sqr(z0)))), MARK(recip(sqr(z0)))) A__SQR(s(recip(add(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__add(mark(z0), mark(z1)))), a__dbl(mark(recip(add(z0, z1))))), A__SQR(mark(recip(add(z0, z1)))), MARK(recip(add(z0, z1)))) A__SQR(s(recip(dbl(z0)))) -> c3(A__ADD(a__sqr(recip(a__dbl(mark(z0)))), a__dbl(mark(recip(dbl(z0))))), A__SQR(mark(recip(dbl(z0)))), MARK(recip(dbl(z0)))) A__SQR(s(recip(first(z0, z1)))) -> c3(A__ADD(a__sqr(recip(a__first(mark(z0), mark(z1)))), a__dbl(mark(recip(first(z0, z1))))), A__SQR(mark(recip(first(z0, z1)))), MARK(recip(first(z0, z1)))) A__SQR(s(recip(cons(z0, z1)))) -> c3(A__ADD(a__sqr(recip(cons(mark(z0), z1))), a__dbl(mark(recip(cons(z0, z1))))), A__SQR(mark(recip(cons(z0, z1)))), MARK(recip(cons(z0, z1)))) A__SQR(s(recip(recip(z0)))) -> c3(A__ADD(a__sqr(recip(recip(mark(z0)))), a__dbl(mark(recip(recip(z0))))), A__SQR(mark(recip(recip(z0)))), MARK(recip(recip(z0)))) A__SQR(s(recip(s(z0)))) -> c3(A__ADD(a__sqr(recip(s(mark(z0)))), a__dbl(mark(recip(s(z0))))), A__SQR(mark(recip(s(z0)))), MARK(recip(s(z0)))) A__SQR(s(recip(0))) -> c3(A__ADD(a__sqr(recip(0)), a__dbl(mark(recip(0)))), A__SQR(mark(recip(0))), MARK(recip(0))) A__SQR(s(recip(nil))) -> c3(A__ADD(a__sqr(recip(nil)), a__dbl(mark(recip(nil)))), A__SQR(mark(recip(nil))), MARK(recip(nil))) A__SQR(s(s(x0))) -> c3(A__ADD(s(a__add(a__sqr(mark(mark(x0))), a__dbl(mark(mark(x0))))), a__dbl(mark(s(x0)))), A__SQR(mark(s(x0))), MARK(s(x0))) A__SQR(s(s(terms(z0)))) -> c3(A__ADD(a__sqr(s(a__terms(mark(z0)))), a__dbl(mark(s(terms(z0))))), A__SQR(mark(s(terms(z0)))), MARK(s(terms(z0)))) A__SQR(s(s(sqr(z0)))) -> c3(A__ADD(a__sqr(s(a__sqr(mark(z0)))), a__dbl(mark(s(sqr(z0))))), A__SQR(mark(s(sqr(z0)))), MARK(s(sqr(z0)))) A__SQR(s(s(add(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__add(mark(z0), mark(z1)))), a__dbl(mark(s(add(z0, z1))))), A__SQR(mark(s(add(z0, z1)))), MARK(s(add(z0, z1)))) A__SQR(s(s(dbl(z0)))) -> c3(A__ADD(a__sqr(s(a__dbl(mark(z0)))), a__dbl(mark(s(dbl(z0))))), A__SQR(mark(s(dbl(z0)))), MARK(s(dbl(z0)))) A__SQR(s(s(first(z0, z1)))) -> c3(A__ADD(a__sqr(s(a__first(mark(z0), mark(z1)))), a__dbl(mark(s(first(z0, z1))))), A__SQR(mark(s(first(z0, z1)))), MARK(s(first(z0, z1)))) A__SQR(s(s(cons(z0, z1)))) -> c3(A__ADD(a__sqr(s(cons(mark(z0), z1))), a__dbl(mark(s(cons(z0, z1))))), A__SQR(mark(s(cons(z0, z1)))), MARK(s(cons(z0, z1)))) A__SQR(s(s(recip(z0)))) -> c3(A__ADD(a__sqr(s(recip(mark(z0)))), a__dbl(mark(s(recip(z0))))), A__SQR(mark(s(recip(z0)))), MARK(s(recip(z0)))) A__SQR(s(s(s(z0)))) -> c3(A__ADD(a__sqr(s(s(mark(z0)))), a__dbl(mark(s(s(z0))))), A__SQR(mark(s(s(z0)))), MARK(s(s(z0)))) A__SQR(s(s(0))) -> c3(A__ADD(a__sqr(s(0)), a__dbl(mark(s(0)))), A__SQR(mark(s(0))), MARK(s(0))) A__SQR(s(s(nil))) -> c3(A__ADD(a__sqr(s(nil)), a__dbl(mark(s(nil)))), A__SQR(mark(s(nil))), MARK(s(nil))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(mark(0)), 0), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__ADD(a__sqr(0), a__dbl(0)), A__SQR(mark(0))) A__SQR(s(0)) -> c3(A__SQR(mark(0))) A__SQR(s(nil)) -> c3(A__ADD(a__sqr(nil), a__dbl(nil)), A__SQR(mark(nil))) A__SQR(s(nil)) -> c3(A__SQR(mark(nil))) A__SQR(s(terms(z0))) -> c3(A__SQR(a__terms(mark(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c3(A__SQR(a__sqr(mark(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c3(A__SQR(a__add(mark(z0), mark(z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c3(A__SQR(a__dbl(mark(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c3(A__SQR(a__first(mark(z0), mark(z1))), MARK(first(z0, z1))) A__SQR(s(s(z0))) -> c3(A__SQR(s(mark(z0))), MARK(s(z0))) A__SQR(s(cons(z0, z1))) -> c3(MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c3(MARK(recip(z0))) A__SQR(s(0)) -> c3 A__SQR(s(nil)) -> c3 A__SQR(s(0)) -> c3(A__ADD(0, a__dbl(mark(0))), A__SQR(mark(0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(mark(terms(z0))), dbl(a__terms(mark(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(mark(sqr(z0))), dbl(a__sqr(mark(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(mark(add(z0, z1))), dbl(a__add(mark(z0), mark(z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(mark(dbl(z0))), dbl(a__dbl(mark(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(mark(first(z0, z1))), dbl(a__first(mark(z0), mark(z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(mark(cons(z0, z1))), dbl(cons(mark(z0), z1))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(mark(recip(z0))), dbl(recip(mark(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(mark(s(z0))), dbl(s(mark(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(terms(z0))) -> c4(A__ADD(a__sqr(a__terms(mark(z0))), dbl(mark(terms(z0)))), A__DBL(mark(terms(z0))), MARK(terms(z0))) A__SQR(s(sqr(z0))) -> c4(A__ADD(a__sqr(a__sqr(mark(z0))), dbl(mark(sqr(z0)))), A__DBL(mark(sqr(z0))), MARK(sqr(z0))) A__SQR(s(add(z0, z1))) -> c4(A__ADD(a__sqr(a__add(mark(z0), mark(z1))), dbl(mark(add(z0, z1)))), A__DBL(mark(add(z0, z1))), MARK(add(z0, z1))) A__SQR(s(dbl(z0))) -> c4(A__ADD(a__sqr(a__dbl(mark(z0))), dbl(mark(dbl(z0)))), A__DBL(mark(dbl(z0))), MARK(dbl(z0))) A__SQR(s(first(z0, z1))) -> c4(A__ADD(a__sqr(a__first(mark(z0), mark(z1))), dbl(mark(first(z0, z1)))), A__DBL(mark(first(z0, z1))), MARK(first(z0, z1))) A__SQR(s(cons(z0, z1))) -> c4(A__ADD(a__sqr(cons(mark(z0), z1)), dbl(mark(cons(z0, z1)))), A__DBL(mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SQR(s(recip(z0))) -> c4(A__ADD(a__sqr(recip(mark(z0))), dbl(mark(recip(z0)))), A__DBL(mark(recip(z0))), MARK(recip(z0))) A__SQR(s(s(z0))) -> c4(A__ADD(a__sqr(s(mark(z0))), dbl(mark(s(z0)))), A__DBL(mark(s(z0))), MARK(s(z0))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(mark(0)), dbl(0)), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(mark(nil)), dbl(nil)), A__DBL(mark(nil))) A__SQR(s(0)) -> c4(A__ADD(a__sqr(0), dbl(mark(0))), A__DBL(mark(0))) A__SQR(s(nil)) -> c4(A__ADD(a__sqr(nil), dbl(mark(nil))), A__DBL(mark(nil))) K tuples:none Defined Rule Symbols: a__terms_1, a__sqr_1, a__dbl_1, a__add_2, a__first_2, mark_1 Defined Pair Symbols: A__ADD_2, A__FIRST_2, MARK_1, A__TERMS_1, A__SQR_1, A__DBL_1 Compound Symbols: c9_1, c14_1, c23_1, c24_1, c25_1, c_2, c_1, c3_2, c4_3, c4_2, c7_2, c7_1, c10_2, c10_1, c11_2, c11_1, c16_2, c17_2, c17_1, c18_2, c18_1, c19_2, c19_1, c20_2, c20_1, c21_2, c21_1, c22_2, c22_1, c3_3, c3_1, c3